2016-08-24 3 views
0

Я использую NServiceBus как слой абстракции для Azure Service Bus (в случае, если мы удаляемся от Azure). Я нахожу, что при работе с несколькими подписчиками (которые подписываются на одни и те же события) число повторяющихся сообщений увеличивается. Я знаю, что Azure Service Bus (ASB) имеет способ обнаружения этих дубликатов, и я вижу, что эта функция настраивается через NServiceBus (согласно документации). Тем не менее, я могу получить только образец достижения обнаружения дублирования с помощью раздела конфигурации. Что мне нужно, это пример того, как добиться этого с помощью кода.Повторяющееся обнаружение с помощью NServiceBus на Azure Service Buus

Благодаря

Сураджа

+0

Какую версию транспорта NServiceBus и Azure Service вы используете? –

ответ

1

Вы можете задать конфигурацию с помощью кода на основе подхода, а также. NServiceBus имеет контракты, которые могут помочь с этим IConfigurationSource и IProvideConfiguration<T>. Вот , как вы можете взять раздел файла конфигурации (UnicastBusConfig) и указать значения через код.

В особенности, что вы просили, реализация IProvideConfiguration<AzureServiceBusQueueConfig> позволит вам configure ASB transport, указав дубликаты и т. Д.

Наблюдение за количеством дубликатов, увеличивающихся в результате увеличения числа абонентов, воспринимается как симптом, а не проблема. Это, вероятно, другой вопрос, не связанный с конфигурацией. Говоря об этом, я бы заглянул в него до того, как разрешил естественное разуплотнение. Хотя вы можете указать RequiresDuplicateDetection и DuplicateDetectionHistoryTimeWindow знать, что ASB выполняет двойное обнаружение только в свойстве ID. Кроме того, лучше создавать ваши обработчики как идемпотентные, а не полагаться на естественное дедупликацию.

+0

Привет, Шон, Спасибо за помощь и совет. –

+0

Больше, чем приветствуется. –