Техника обработки подписчиков темы ServiceBus, работающих в промежуточной среде Azure, при использовании ReceiveMode.ReceiveAndDelete

У нас есть ряд тем в Azure SB, и мы постоянно обновляем наши среды посредством переключения VIP с промежуточной стадии на рабочую.

Когда экземпляр работает в промежуточной стадии, мы не хотим, чтобы подписчики читали и удаляли сообщения, предназначенные для отправки событий нашим экземплярам, ​​работающим в производственном слоте.

Решение, которое я придумал, состоит в том, чтобы создавать подписки, которые включают в имя RoleEnvironment.SubscriptionId. Затем они удаляются во время RoleEntryPoint.OnStop(), чтобы избежать неиспользуемых подписок.

Есть ли более элегантное решение для этого, и я упускаю что-то очевидное?


person el_tone    schedule 25.01.2012    source источник


Ответы (1)


Один из подходов заключается в том, чтобы настроить параметр конфигурации, понятный вашему приложению. Затем его можно изменить между промежуточными/производственными средами, и одно и то же значение конфигурации можно использовать для включения/отключения того, что вам не нужно в производственной среде. Для служебной шины вы можете создать пространство имен Staging и Production, а затем поместить URL-адрес в config.

person Abhishek Lal    schedule 26.01.2012
comment
Проблема в том, что нет хорошего способа определить, находится ли что-то в производстве или в стадии подготовки. Если он извлекается из конфигурации, то любое изменение этой конфигурации после обмена требует простоя. - person el_tone; 26.01.2012
comment
Я исследовал это еще немного и нашел шаги, указывающие на то, что вы можете предотвратить перезапуск при изменении конфигурации, если вы выберете: codeproject.com/Articles/63977/ - person Abhishek Lal; 10.02.2012