2016-04-14 15 views
1

Ich habe es mit einer High-Throughput-Anwendung von EventHub. Gemäß der documentation müssen mehrere Nachrichtenfabriken mit einem EventHubClient-Objekt erstellt werden, um einen sehr hohen Durchsatz von einem einzelnen Absender zu erreichen.EventHub-Verbindung Pooling

Best Practices for performance improvements using Service Bus brokered messaging schlägt vor, mehrere Fabriken zu erstellen und wiederzuverwenden, um Leistungsverbesserungen zu erzielen.

Ist das ServiceBus-Verbindungs-Pooling offiziell verfügbar?

Antwort

2

Die Nachricht ist in diesen beiden Links identisch. Clients, die von derselben MessagingFactory-Instanz erstellt wurden, verwenden die gleiche zugrunde liegende AMQP-Socket-Verbindung. Für das Senden mit geringem Durchsatz von demselben Prozess ist die erneute Verwendung der MessagingFactory völlig in Ordnung und wird bevorzugt, da dies weniger Verbindungen auf der Serverseite verursacht (und Verbindungen sind eine begrenzte Ressource). Im doc „Best Practices für die Leistungsverbesserungen mit Service Bus brokered Messaging“, die Sie verlinken auf, wenn Sie weiter unten im doc feststellen, heißt es:

  • Mehrere Fabriken: alle Clients (Absender zusätzlich zu den Empfängern), die von derselben Fabrik erstellt wurden, teilen sich eine TCP-Verbindung. Der maximale Nachrichtendurchsatz ist durch die Anzahl der Vorgänge begrenzt, die diese TCP-Verbindung durchlaufen kann. Der Durchsatz, der mit einer einzelnen Fabrik erzielt werden kann, variiert stark mit den TCP-Umlaufzeiten und der Nachrichtengröße. Um eine höhere Durchsatzraten zu erhalten, sollten Sie mehrere Messaging-Fabriken

verwenden, die die gleiche Nachricht von der Event-Hub-Dokumentation, die Sie verknüpfen.

+0

MessagingFactory ist in der Microsoft.Azure.EventHubs-Bibliothek nicht verfügbar. Wissen Sie, ob es einen alternativen Weg gibt, wie ich versuchen kann, die zugrunde liegende TCP-Verbindung beim Erstellen des eventhub-Clients wiederzuverwenden, da sie nicht verfügbar ist? – Tany