Если больше нет издателей или подписчиков, которые читают или записывают в Очередь, Тему или Подписку из-за сбоев или других ненормальных завершений (перезапуск экземпляра и т. Д.), Действительно ли эта Очередь / Тема / Подписка осиротела?
Я проверил это, создав несколько очередей, а затем завершив работу приложений. Эти очереди еще долгое время оставались на служебной шине. Кажется, они просто останутся там навсегда. Было бы замечательно, если бы мы ХОТИЛ такого поведения, но в данном случае мы этого не делаем.
Как мы можем обнаружить и удалить эти очереди, темы и подписки? Они будут учитываться при учете ограничений Azure и т. Д., И мы не можем иметь эти потерянные процессы каждый раз при перезапуске / исправлении / сбое экземпляра.
Если это помогает прояснить вопрос, это уникальная ситуация, в которой очереди / темы / подписки имеют особые имена или специальные фильтры и очень ограниченный набор издателей (1) и подписчиков (1). на ограниченное время. Это не тот случай, когда нам нужна живучесть. Это каналы ответа для конкретного экземпляра. Используем ли мы очереди или подписки, не имеет значения. Если экземпляр пропал, значит, нужна эта очередь (или подписка).
Это часть решения, в котором каждая веб-роль имеет выделенный канал ответа, который она отслеживает. В любое время эта веб-роль может иметь десятки запросов, ожидающих обработки через другие каналы обмена сообщениями (очереди / темы), и она ожидает ответов в нескольких потоках. Нам нужен ответ, чтобы вернуться в поток, разместивший сообщение, чтобы веб-роль могла отвечать вызывающему. В этой ситуации нет ничего хорошего в том, чтобы просто иметь Подписку на основе машины, потому что она будет получать сообщения для других потоков. Нам нужно, чтобы каждый поток публикации установил выделенный канал ответа, чтобы единственное, что было на этом канале, - это ответ для этого потока.
Даже если мы используем Подписки (с каким-то фильтром, связанным с экземпляром) для выполнения операции приема с длительным опросом в Подписке, если экземпляр веб-роли умрет, эта Подписка будет потеряна, верно?
Этот вопрос можно свести к следующему: если больше нет издателей или подписчиков на Очередь / Тема / Подписку, то эта услуга фактически потеряна. Как можно обнаружить этих сирот и избавиться от них?