EventHubClient Klasse

Definition

Anchor-Klasse: Alle EventHub-Clientvorgänge werden hier gestartet. Siehe CreateFromConnectionString(String)

public abstract class EventHubClient : Microsoft.Azure.EventHubs.ClientEntity
type EventHubClient = class
    inherit ClientEntity
Public MustInherit Class EventHubClient
Inherits ClientEntity
Vererbung
EventHubClient

Eigenschaften

ClientId

Ruft die Client-ID ab.

(Geerbt von ClientEntity)
EnableReceiverRuntimeMetric

Ruft einen Wert ab, der angibt, ob die Laufzeitmetrik eines Empfängers aktiviert ist, oder legt den Wert fest.

EventHubName

Ruft den Namen des EventHub ab.

IsClosed

Gibt einen booleschen Wert zurück, der angibt, ob das Clientobjekt geschlossen ist oder nicht.

(Geerbt von ClientEntity)
RegisteredPlugins

Ruft eine Liste der derzeit registrierten Plug-Ins für diesen Client ab.

(Geerbt von ClientEntity)
RetryPolicy

Ruft die RetryPolicy für clientEntity ab.

(Geerbt von ClientEntity)
WebProxy

Ruft den Webproxy ab oder legt den Webproxy fest. Ein Proxy ist nur anwendbar, wenn der Transporttyp auf AmqpWebSockets festgelegt ist. Wenn nicht festgelegt, werden die systemweiten Proxyeinstellungen berücksichtigt.

Methoden

Close()

Schließt clientEntity.

(Geerbt von ClientEntity)
CloseAsync()

Schließt und gibt ressourcen frei, die zugeordnet sind EventHubClient.

Create(EventHubsConnectionStringBuilder)

Erstellt mithilfe des angegebenen Verbindungszeichenfolgen-Generators eine neue instance des Event Hubs-Clients.

CreateBatch()

Erstellt einen Batch, in dem Ereignisdatenobjekte für einen späteren SendAsync-Aufruf hinzugefügt werden können.

CreateBatch(BatchOptions)

Erstellt einen Batch, in dem Ereignisdatenobjekte für einen späteren SendAsync-Aufruf hinzugefügt werden können.

CreateEpochReceiver(String, String, EventPosition, Int64, ReceiverOptions)

Erstellen Sie einen Epoch-basierten EventHub-Empfänger mit dem angegebenen EventPosition. Der Empfänger wird für eine bestimmte EventHub-Partition aus der jeweiligen Consumergruppe erstellt.

Es ist wichtig, bei der Erstellung von epochenbasierten Empfängern auf Folgendes zu achten:

- Besitzerzwingung: Nachdem Sie einen epochenbasierten Empfänger erstellt haben, können Sie keinen Nicht-Epochen-Empfänger für dieselbe consumerGroup-Partition-Kombination erstellen, bis alle Empfänger für die Kombination geschlossen sind.

- Besitzdiebstahl: Wenn ein Empfänger mit einem höheren Epochenwert für eine consumerGroup-Partition-Kombination erstellt wird, wird jeder ältere Epochenempfänger für diese Kombination erzwungen.

- Jeder Empfänger, der aufgrund eines Verlusts des Besitzes an eine consumerGroup-Partition-Kombination geschlossen wird, erhält ReceiverDisconnectedException für alle Vorgänge dieses Empfängers.
CreateFromConnectionString(String)

Erstellt eine neue instance des Event Hubs-Clients unter Verwendung der angegebenen Verbindungszeichenfolge. Sie können die EntityPath-Eigenschaft mit dem Namen des Event Hubs auffüllen.

CreatePartitionSender(String)

Erstellen Sie eine PartitionSender , die 's direkt in einer bestimmten EventHub-Partition veröffentlichen EventDatakann (Absendertyp iii. in der folgenden Liste).

Es gibt drei Muster/Möglichkeiten zum Senden an EventHubs:

i. SendAsync(EventData) oder SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) oder SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) oder SendAsync(IEnumerable<EventData>)

CreateReceiver(String, String, EventPosition, ReceiverOptions)

Erstellen Sie den EventHub-Empfänger mit dem angegebenen EventPosition. Der Empfänger wird für eine bestimmte EventHub-Partition aus der jeweiligen Consumergruppe erstellt.

CreateWithAzureActiveDirectory(Uri, String, AzureActiveDirectoryTokenProvider+AuthenticationCallback, String, Nullable<TimeSpan>, TransportType)

Erstellt mithilfe der Azure Active Directory-Authentifizierung eine neue instance vonEventHubClient.

CreateWithManagedIdentity(Uri, String, Nullable<TimeSpan>, TransportType)

Erstellt eine neue instance von mithilfe der EventHubClient Azure Managed Identity-Authentifizierung.

CreateWithTokenProvider(Uri, String, ITokenProvider, Nullable<TimeSpan>, TransportType)

Erstellt eine neue instance des Event Hubs-Clients unter Verwendung des angegebenen Endpunkts, Entitätspfads und Tokenanbieters.

GetPartitionRuntimeInformationAsync(String)

Ruft Laufzeitinformationen für die angegebene Partition des Event Hubs ab.

GetRuntimeInformationAsync()

Ruft EventHub-Laufzeitinformationen ab.

OnCloseAsync()

Anchor-Klasse: Alle EventHub-Clientvorgänge werden hier gestartet. Siehe CreateFromConnectionString(String)

OnCreateReceiver(String, String, EventPosition, Nullable<Int64>, ReceiverOptions)

Anchor-Klasse: Alle EventHub-Clientvorgänge werden hier gestartet. Siehe CreateFromConnectionString(String)

OnGetPartitionRuntimeInformationAsync(String)

Anchor-Klasse: Alle EventHub-Clientvorgänge werden hier gestartet. Siehe CreateFromConnectionString(String)

OnGetRuntimeInformationAsync()

Anchor-Klasse: Alle EventHub-Clientvorgänge werden hier gestartet. Siehe CreateFromConnectionString(String)

OnRetryPolicyUpdate()

Behandeln Sie hier Wiederholungsrichtlinienupdates.

RegisterPlugin(EventHubsPlugin)

Registriert eine EventHubsPlugin , die mit diesem Client verwendet werden soll.

(Geerbt von ClientEntity)
SendAsync(EventData)

An EventHub senden EventData . Die gesendeten EventData-Daten landen auf jeder willkürlich ausgewählten EventHubs-Partition.

Es gibt drei Möglichkeiten zum Senden an EventHubs, die jeweils als Methode verfügbar gemacht werden (zusammen mit der sendBatch-Überladung):

i. SendAsync(EventData) oder SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) oder SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) oder SendAsync(IEnumerable<EventData>)

Verwenden Sie diese Methode, um zu senden, wenn:

a) der SendAsync(EventData) Vorgang sollte hochverfügbar sein und

b) die Daten müssen gleichmäßig auf alle Partitionen verteilt werden; Ausnahme: Wenn eine Teilmenge von Partitionen nicht verfügbar ist

SendAsync(EventData) sendet an EventData ein Dienstgateway, das die EventData-Instanz wiederum an eine der EventHub-Partitionen weiterleitet. Hier sehen Sie den Algorithmus für die Nachrichtenweiterleitung:

i. Weiterleiten der EventDatas an EventHub-Partitionen durch gleichmäßige Verteilung der Daten auf alle Partitionen (z. B. Roundrobin der EventDatas auf alle EventHub-Partitionen)

ii. Wenn eine der EventHub-Partitionen für einen Moment nicht verfügbar ist, erkennt das Dienstgateway sie automatisch und leitet die Nachricht an eine andere verfügbare Partition weiter, sodass der Sendevorgang hochverfügbar ist.

SendAsync(EventData, String)

Sendet ein -EventData mit einem partitionKey an EventHub. Alle EventDatamit einem partitionKey-Element landen garantiert auf derselben Partition. Dieses Sendemuster betont die Datenkorrelation gegenüber allgemeiner Verfügbarkeit und Latenz.

Es gibt drei Möglichkeiten zum Senden an EventHubs, die jeweils als Methode verfügbar gemacht werden (zusammen mit der Batchüberladung):

i. SendAsync(EventData) oder SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) oder SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) oder SendAsync(IEnumerable<EventData>)

Verwenden Sie diesen Sendetyp, wenn:

a) Es besteht ein Bedarf an Korrelation von Ereignissen basierend auf sender instance; Der Absender kann eine UniqueId generieren und als partitionKey festlegen. Dies kann für die empfangene Nachricht für die Korrelation verwendet werden.

b) Der Client möchte die Kontrolle über die Verteilung von Daten auf Partitionen übernehmen.

Mehrere PartitionSschlüssel können einer Partition zugeordnet werden. Der EventHubs-Dienst verwendet einen proprietären Hashalgorithmus, um den PartitionKey einer PartitionId zuzuordnen. Die Verwendung dieser Art von Send (Senden mit einem bestimmten partitionKey) kann manchmal zu Partitionen führen, die nicht gleichmäßig verteilt sind.
SendAsync(EventDataBatch)

Senden Sie einen Batch von EventData in EventDataBatch.

SendAsync(IEnumerable<EventData>)

Senden Sie einen Batch von EventData an EventHub. Die gesendeten EventData-Daten landen auf jeder willkürlich ausgewählten EventHub-Partition. Dies ist die am besten empfohlene Methode zum Senden an EventHub.

Es gibt drei Möglichkeiten, an EventHubs zu senden. Um diesen speziellen Sendetyp zu verstehen, verweisen Sie auf die Überladung SendAsync(EventData), die zum Senden einzelner EventDataverwendet wird. Verwenden Sie diese Überladung, wenn Sie einen Batch von EventDatasenden müssen.

Das Senden eines Batches von EventData's ist in den folgenden Fällen nützlich:

i. Effizientes Senden: Das Senden eines Batches von EventData maximiert den Gesamtdurchsatz, indem die Anzahl der Sitzungen, die für den EventHub-Dienst erstellt wurden, optimal verwendet wird.

ii. Senden sie mehrere EventDatain einer Transaktion. Um ACID-Eigenschaften zu erhalten, leitet der Gatewaydienst alle EventDataim Batch enthaltenen Dateien an eine einzelne EventHub-Partition weiter.

SendAsync(IEnumerable<EventData>, String)

Senden Sie einen "Batch von EventData mit demselben partitionKey" an EventHub. Alle EventDatamit einem partitionKey-Element landen garantiert auf derselben Partition. Mehrere PartitionKeys werden einer Partition zugeordnet.

Es gibt drei Möglichkeiten, an EventHubs zu senden. Um diesen speziellen Sendetyp zu verstehen, verweisen Sie auf die Überladung SendAsync(EventData, String), die denselben Sendetyp darstellt und zum Senden einzelner EventDataverwendet wird.

Das Senden eines Batches von EventData's ist in den folgenden Fällen nützlich:

i. Effizientes Senden: Das Senden eines Batches von EventData maximiert den Gesamtdurchsatz, indem die Anzahl der Sitzungen, die für den EventHubs-Dienst erstellt wurden, optimal verwendet wird.

ii. Senden mehrerer Ereignisse in einer Transaktion. Aus diesem Grund müssen alle ereignisse, die in einem Batch gesendet werden, denselben partitionKey aufweisen (damit sie nur an eine Partition gesendet werden).

ThrowIfClosed()

Löst eine Ausnahme aus, wenn das Clientobjekt bereits geschlossen ist.

(Geerbt von ClientEntity)
UnregisterPlugin(String)

Hebt die Registrierung eines auf EventHubsPlugin.

(Geerbt von ClientEntity)

Gilt für: