EventHubProducerClient Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein Client, der für die Veröffentlichung EventData in einem bestimmten Event Hub verantwortlich ist, gruppiert in Batches. Abhängig von den beim Senden angegebenen Optionen wird Ereignissen möglicherweise automatisch eine verfügbare Partition zugewiesen oder eine bestimmte Partition angefordert.
Veröffentlicht EventHubProducerClient sofort, um ein deterministisches Ergebnis für jeden Sendevorgang zu gewährleisten, erfordert jedoch, dass Aufrufer die Verantwortung für das Erstellen und Verwalten von Batches haben.
In Szenarien, in denen es nicht wichtig ist, Ereignisse sofort zu veröffentlichen und in denen die Maximierung der Partitionsverfügbarkeit nicht erforderlich ist, empfiehlt es sich, die Verwendung von EventHubBufferedProducerClientin Betracht zu ziehen, die die Verantwortung für das Erstellen und Verwalten von Batches übernimmt, um die Komplexität dieser Vorgänge im Anwendungscode zu verringern.
public class EventHubProducerClient : IAsyncDisposable
type EventHubProducerClient = class
interface IAsyncDisposable
Public Class EventHubProducerClient
Implements IAsyncDisposable
- Vererbung
-
EventHubProducerClient
- Implementiert
Hinweise
Das Zulassen der Partitionszuweisung wird empfohlen, wenn:
- Das Senden von Ereignissen muss hochverfügbar sein.
- Die Ereignisdaten sollten gleichmäßig auf alle verfügbaren Partitionen verteilt werden.
Wenn keine Partition angegeben ist, werden die folgenden Regeln verwendet, um automatisch eine Partition auszuwählen:
- Verteilen Sie die Ereignisse mit einem Roundrobin-Ansatz gleichmäßig auf alle verfügbaren Partitionen.
- Wenn eine Partition nicht mehr verfügbar ist, erkennt der Event Hubs-Dienst sie automatisch und leitet die Nachricht an eine andere verfügbare Partition weiter.
Ist EventHubProducerClient sicher, während der Lebensdauer einer Anwendung zwischenzuspeichern und zu verwenden. Dies ist die bewährte Methode, wenn die Anwendung Regelmäßig oder halb regelmäßig Ereignisse veröffentlicht. Der Producer ist dafür verantwortlich, eine effiziente Netzwerk-, CPU- und Arbeitsspeichernutzung sicherzustellen. Wenn Sie entweder CloseAsync(CancellationToken) oder DisposeAsync() aufrufen, während die Anwendung heruntergefahren wird, wird sichergestellt, dass Netzwerkressourcen und andere nicht verwaltete Objekte ordnungsgemäß bereinigt werden.
Konstruktoren
Eigenschaften
EventHubName |
Der Name des Event Hubs, mit dem der Producer verbunden ist, spezifisch für den Event Hubs-Namespace, der ihn enthält. |
FullyQualifiedNamespace |
Der vollqualifizierte Event Hubs-Namespace, dem der Producer zugeordnet ist. Dies ist wahrscheinlich ähnlich wie . |
Identifier |
Ein eindeutiger Name, der verwendet wird, um diesen Producer zu identifizieren. |
IsClosed |
Gibt an, ob diese EventHubProducerClient geschlossen wurde. |
Methoden
CloseAsync(CancellationToken) |
Schließt den Producer. |
CreateBatchAsync(CancellationToken) |
Erstellt einen Batch mit Größeneinschränkung, dem EventData mithilfe eines try-basierten Musters hinzugefügt werden kann. Wenn ein Ereignis die maximal zulässige Größe des Batches überschreiten würde, lässt der Batch das Hinzufügen des Ereignisses nicht zu und signalisiert dieses Szenario mithilfe des Rückgabewerts. Da Ereignisse, die gegen die Größeneinschränkung verstoßen, nicht hinzugefügt werden können, wird beim Veröffentlichen eines Batches keine Ausnahme ausgelöst, wenn versucht wird, die Ereignisse an den Event Hubs-Dienst zu senden. |
CreateBatchAsync(CreateBatchOptions, CancellationToken) |
Erstellt einen Batch mit Größeneinschränkung, dem EventData mithilfe eines try-basierten Musters hinzugefügt werden kann. Wenn ein Ereignis die maximal zulässige Größe des Batches überschreiten würde, lässt der Batch das Hinzufügen des Ereignisses nicht zu und signalisiert dieses Szenario mithilfe des Rückgabewerts. Da Ereignisse, die gegen die Größeneinschränkung verstoßen, nicht hinzugefügt werden können, wird beim Veröffentlichen eines Batches keine Ausnahme ausgelöst, wenn versucht wird, die Ereignisse an den Event Hubs-Dienst zu senden. |
DisposeAsync() |
Führt die Aufgabe aus, die zum sauber von verwendeten Ressourcen erforderlich ist, einschließlich der EventHubProducerClientSicherstellung, dass der Client selbst geschlossen wurde. |
GetEventHubPropertiesAsync(CancellationToken) |
Ruft Informationen zum Event Hub ab, dem die Verbindung zugeordnet ist, einschließlich der Anzahl der vorhandenen Partitionen und deren Bezeichner. |
GetPartitionIdsAsync(CancellationToken) |
Ruft den Satz von Bezeichnern für die Partitionen eines Event Hubs ab. |
GetPartitionPropertiesAsync(String, CancellationToken) |
Ruft Informationen zu einer bestimmten Partition für einen Event Hub ab, einschließlich Elementen, die die verfügbaren Ereignisse im Partitionsereignisstream beschreiben. |
SendAsync(EventDataBatch, CancellationToken) |
Sendet eine Reihe von Ereignissen mithilfe eines Batchansatzes an den zugeordneten Event Hub. |
SendAsync(IEnumerable<EventData>, CancellationToken) |
Sendet eine Reihe von Ereignissen als einzelnen Vorgang an den zugeordneten Event Hub. Um den Mehraufwand zu vermeiden, der mit dem Messen und Überprüfen der Größe im Client verbunden ist, wird die Validierung an den Event Hubs-Dienst delegiert und verzögert, bis der Vorgang aufgerufen wird. Der Aufruf schlägt fehl, wenn die Größe des angegebenen Ereignissatzes die maximal zulässige Größe eines einzelnen Batches überschreitet. |
SendAsync(IEnumerable<EventData>, SendEventOptions, CancellationToken) |
Sendet eine Reihe von Ereignissen als einzelnen Vorgang an den zugeordneten Event Hub. Um den Mehraufwand zu vermeiden, der mit dem Messen und Überprüfen der Größe im Client verbunden ist, wird die Validierung an den Event Hubs-Dienst delegiert und verzögert, bis der Vorgang aufgerufen wird. Der Aufruf schlägt fehl, wenn die Größe des angegebenen Ereignissatzes die maximal zulässige Größe eines einzelnen Batches überschreitet. |
Gilt für:
Weitere Informationen
Azure SDK for .NET