2016-08-24 1 views
0

Ich verwende NServiceBus als Abstraktionsschicht für Azure Service Bus (falls wir von Azure wegziehen). Ich finde, dass bei der Arbeit mit mehreren Abonnenten (die die gleichen Ereignisse abonnieren) die Anzahl der doppelten Nachrichten zunimmt. Ich weiß, Azure Service Bus (ASB) hat eine Möglichkeit, diese Duplikate zu erkennen und ich kann sehen, dass die Funktion über NServiceBus konfigurierbar ist (laut Dokumentation). Ich kann jedoch nur eine Probe davon erhalten, eine Duplikationserkennung durch einen Konfigurationsabschnitt zu erreichen. Was ich benötige, ist ein Beispiel dafür, wie dies mit Code erreicht werden kann.Doppelte Erkennung mit NServiceBus auf Azure Service Buus

Dank

Suraj

+0

Welche Version von NServiceBus und Azure Service Bus-Transport verwenden Sie? –

Antwort

1

Sie Konfiguration mit Code-basierten Ansatz auch angeben können. NServiceBus hat Verträge, die dabei helfen können IConfigurationSource und IProvideConfiguration<T>. Hier ist an example, wie Sie eine Konfigurationsdatei Abschnitt (UnicastBusConfig) nehmen und Werte über Code angeben können.

Speziell zu dem, was Sie gefragt haben, ermöglicht die Implementierung IProvideConfiguration<AzureServiceBusQueueConfig> Ihnen configure ASB transport, Angabe von Duplikaten und dergleichen.

Die Beobachtung über die Anzahl von Duplikaten, die sich als Folge zunehmender Abonnenten erhöht, ist ein Symptom, nicht das Problem. Das ist wahrscheinlich eine andere Frage, die nicht mit der Konfiguration zusammenhängt. Wenn ich das sagen würde, würde ich mir das vorher ansehen, bevor ich die native De-Dupplication aktiviere. Während Sie RequiresDuplicateDetection und DuplicateDetectionHistoryTimeWindow angeben können, beachten Sie, dass der ASB eine doppelte Erkennung nur für die ID-Eigenschaft durchführt. Außerdem ist es besser, Ihre Handler als Idempotent zu erstellen, anstatt sich auf die native Deduplizierung zu verlassen.

+0

Hallo Sean, Vielen Dank für Ihre Hilfe und Beratung. –

+0

Mehr als willkommen. –

Verwandte Themen