Freigeben über


PartitionSender.SendAsync Methode

Definition

Überlädt

SendAsync(EventData)

Senden sie EventData an eine bestimmte EventHub-Partition. Die Zielpartition wird beim Erstellen dieses PartitionSenders vorab bestimmt. Dieses Sendemuster betont die Datenkorrelation gegenüber der allgemeinen Verfügbarkeit und Latenz.

Es gibt drei Möglichkeiten, an EventHubs zu senden, 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 diesen Sendetyp, wenn:

a. Der Client möchte die direkte Kontrolle über die Verteilung von Daten auf Partitionen übernehmen. In diesem Fall ist der Client dafür verantwortlich, dass es mindestens einen Absender pro Event Hub-Partition gibt.

b. Der Benutzer kann den Partitionsschlüssel nicht als Mittel verwenden, um Ereignisse an eine bestimmte Partition weiterzuleiten. Dennoch ist eine Datenkorrelation mit dem Partitionierungsschema erforderlich.

SendAsync(EventDataBatch)

Senden Sie einen Batch von EventData in EventDataBatch.

SendAsync(IEnumerable<EventData>)

Senden sie EventData an eine bestimmte EventHub-Partition. Die Zielpartition wird beim Erstellen dieses PartitionSenders vorab festgelegt.

Es gibt 3 Möglichkeiten, an EventHubs zu senden. Um diese bestimmte Art von Senden zu verstehen, verweisen Sie auf die Überladung SendAsync(EventData), die den gleichen Sendetyp ist 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 von mehreren EventDatás in einer Transaktion. Um ACID-Eigenschaften zu erzielen, leitet der Gatewaydienst alle EventData's im Batch an eine einzelne EventHub-Partition weiter.

SendAsync(EventData)

Quelle:
PartitionSender.cs

Senden sie EventData an eine bestimmte EventHub-Partition. Die Zielpartition wird beim Erstellen dieses PartitionSenders vorab bestimmt. Dieses Sendemuster betont die Datenkorrelation gegenüber der allgemeinen Verfügbarkeit und Latenz.

Es gibt drei Möglichkeiten, an EventHubs zu senden, 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 diesen Sendetyp, wenn:

a. Der Client möchte die direkte Kontrolle über die Verteilung von Daten auf Partitionen übernehmen. In diesem Fall ist der Client dafür verantwortlich, dass es mindestens einen Absender pro Event Hub-Partition gibt.

b. Der Benutzer kann den Partitionsschlüssel nicht als Mittel verwenden, um Ereignisse an eine bestimmte Partition weiterzuleiten. Dennoch ist eine Datenkorrelation mit dem Partitionierungsschema erforderlich.

public System.Threading.Tasks.Task SendAsync (Microsoft.Azure.EventHubs.EventData eventData);
member this.SendAsync : Microsoft.Azure.EventHubs.EventData -> System.Threading.Tasks.Task
Public Function SendAsync (eventData As EventData) As Task

Parameter

eventData
EventData

die EventData gesendet werden soll.

Gibt zurück

Eine Aufgabe, die abgeschlossen wird, wenn die Sendevorgänge ausgeführt werden.

Ausnahmen

die Gesamtgröße des EventData überschreitet einen vordefinierten Grenzwert, der vom Dienst festgelegt wurde. Der Standardwert ist 256.000 Bytes.

Beim Event Hubs-Dienst sind während des Vorgangs Probleme aufgetreten.

Gilt für:

SendAsync(EventDataBatch)

Quelle:
PartitionSender.cs

Senden Sie einen Batch von EventData in EventDataBatch.

public System.Threading.Tasks.Task SendAsync (Microsoft.Azure.EventHubs.EventDataBatch eventDataBatch);
member this.SendAsync : Microsoft.Azure.EventHubs.EventDataBatch -> System.Threading.Tasks.Task
Public Function SendAsync (eventDataBatch As EventDataBatch) As Task

Parameter

eventDataBatch
EventDataBatch

Der Batch von Ereignissen, die an EventHub gesendet werden sollen

Gibt zurück

Eine Aufgabe, die abgeschlossen wird, wenn der Sendevorgang abgeschlossen ist.

Gilt für:

SendAsync(IEnumerable<EventData>)

Quelle:
PartitionSender.cs

Senden sie EventData an eine bestimmte EventHub-Partition. Die Zielpartition wird beim Erstellen dieses PartitionSenders vorab festgelegt.

Es gibt 3 Möglichkeiten, an EventHubs zu senden. Um diese bestimmte Art von Senden zu verstehen, verweisen Sie auf die Überladung SendAsync(EventData), die den gleichen Sendetyp ist 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 von mehreren EventDatás in einer Transaktion. Um ACID-Eigenschaften zu erzielen, leitet der Gatewaydienst alle EventData's im Batch an eine einzelne EventHub-Partition weiter.

public System.Threading.Tasks.Task SendAsync (System.Collections.Generic.IEnumerable<Microsoft.Azure.EventHubs.EventData> eventDatas);
member this.SendAsync : seq<Microsoft.Azure.EventHubs.EventData> -> System.Threading.Tasks.Task
Public Function SendAsync (eventDatas As IEnumerable(Of EventData)) As Task

Parameter

eventDatas
IEnumerable<EventData>

Batch von Ereignissen, die an EventHub gesendet werden sollen

Gibt zurück

eine Aufgabe, die abgeschlossen wird, wenn der Sendevorgang abgeschlossen ist.

Ausnahmen

die Gesamtgröße des EventData überschreitet einen vordefinierten Grenzwert, der vom Dienst festgelegt wurde. Der Standardwert ist 256.000 Bytes.

Beim Event Hubs-Dienst sind während des Vorgangs Probleme aufgetreten.

Beispiele

Beispielcode:

EventHubClient client = EventHubClient.Create("__connectionString__");
PartitionSender senderToPartitionOne = client.CreatePartitionSender("1");

while (true)
{
    var events = new List<EventData>();
    for (int count = 1; count < 11; count++)
    {
        var payload = new PayloadEvent(count);
        byte[] payloadBytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload));
        var sendEvent = new EventData(payloadBytes);
        var applicationProperties = new Dictionary<string, string>();
        applicationProperties["from"] = "csharpClient";
        sendEvent.Properties = applicationProperties;
        events.Add(sendEvent);
    }

    await senderToPartitionOne.SendAsync(events);
    Console.WriteLine("Sent Batch... Size: {0}", events.Count);

}

Gilt für: