Share via


EventHubClient.SendAsync Méthode

Définition

Surcharges

SendAsync(EventData)

Envoyer EventData à EventHub. L’EventData envoyé atterrit sur n’importe quelle partition EventHubs choisie arbitrairement.

Il existe 3 façons d’envoyer à EventHubs, chacune exposée en tant que méthode (avec sa surcharge sendBatch) :

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

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

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

Utilisez cette méthode pour envoyer si :

a) l’opération SendAsync(EventData) doit être hautement disponible et

b) les données doivent être réparties uniformément entre toutes les partitions ; exception étant, lorsqu’un sous-ensemble de partitions n’est pas disponible

SendAsync(EventData) envoie le EventData à une passerelle de service, qui à son tour transfère EventData vers l’une des partitions de l’EventHub. Voici l’algorithme de transfert de messages :

i. Transférez les EventDatas vers les partitions EventHub, en répartissant de façon égale les données entre toutes les partitions (par exemple, round-robin les EventDatas à toutes les partitions EventHub)

ii. Si l’une des partitions EventHub n’est pas disponible pendant un moment, la passerelle de service la détecte automatiquement et transfère le message vers une autre partition disponible, ce qui rend l’opération d’envoi hautement disponible.

SendAsync(EventDataBatch)

Envoyez un lot de EventData dans EventDataBatch.

SendAsync(IEnumerable<EventData>)

Envoyez un lot de EventData à EventHub. L’EventData envoyé atterrit sur toute partition EventHub choisie arbitrairement. Il s’agit de la méthode la plus recommandée pour envoyer à EventHub.

Il existe 3 façons d’envoyer à EventHubs, pour comprendre ce type particulier d’envoi, reportez-vous à la surcharge SendAsync(EventData), qui est utilisée pour envoyer un seul EventData. Utilisez cette surcharge si vous devez envoyer un lot de EventData.

L’envoi d’un lot de EventDataest utile dans les cas suivants :

i. Envoi efficace : l’envoi d’un lot de permet d’optimiser EventData le débit global en utilisant de manière optimale le nombre de sessions créées pour le service d’EventHub.

ii. Envoyer plusieurs EventDatadans une transaction. Pour obtenir les propriétés ACID, le service de passerelle transfère tous les EventDatafichiers du lot à une seule partition EventHub.

SendAsync(EventData, String)

Envoie un 'EventData avec une partitionKey à EventHub. Tous les EventDataavec partitionKey sont garantis pour atterrir sur la même partition. Ce modèle d’envoi met l’accent sur la corrélation des données sur la disponibilité générale et la latence.

Il existe 3 façons d’envoyer à EventHubs, chacune exposée en tant que méthode (avec sa surcharge par lots) :

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

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

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

Utilisez ce type d’envoi si :

a) Il est nécessaire d’établir une corrélation entre les événements en fonction des instance de l’expéditeur ; L’expéditeur peut générer un UniqueId et le définir comme partitionKey, qui sur le message reçu peut être utilisé pour la corrélation

b) Le client souhaite prendre le contrôle de la distribution des données entre les partitions.

Plusieurs PartitionKeys peuvent être mappées à une seule partition. Le service EventHubs utilise un algorithme de hachage propriétaire pour mapper partitionKey à un PartitionId. L’utilisation de ce type d’envoi (envoi à l’aide d’une partitionKey spécifique) peut parfois entraîner des partitions qui ne sont pas distribuées uniformément.
SendAsync(IEnumerable<EventData>, String)

Envoyez un « lot de EventData avec la même partitionKey » à EventHub. Tous les EventDataavec une partitionKey sont garantis pour atterrir sur la même partition. Plusieurs PartitionKeys seront mappés à une seule partition.

Il existe 3 façons d’envoyer à EventHubs. Pour comprendre ce type particulier d’envoi, reportez-vous à la surcharge SendAsync(EventData, String), qui est le même type d’envoi et qui est utilisé pour envoyer un seul EventData.

L’envoi d’un lot de EventDataest utile dans les cas suivants :

i. Envoi efficace : l’envoi d’un lot de permet d’optimiser EventData le débit global en utilisant de manière optimale le nombre de sessions créées pour le service EventHubs.

ii. Envoi de plusieurs événements dans Une transaction. C’est la raison pour laquelle tous les événements envoyés dans un lot doivent avoir la même partitionKey (afin qu’ils soient envoyés à une seule partition).

SendAsync(EventData)

Source:
EventHubClient.cs

Envoyer EventData à EventHub. L’EventData envoyé atterrit sur n’importe quelle partition EventHubs choisie arbitrairement.

Il existe 3 façons d’envoyer à EventHubs, chacune exposée en tant que méthode (avec sa surcharge sendBatch) :

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

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

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

Utilisez cette méthode pour envoyer si :

a) l’opération SendAsync(EventData) doit être hautement disponible et

b) les données doivent être réparties uniformément entre toutes les partitions ; exception étant, quand un sous-ensemble de partitions n’est pas disponible

SendAsync(EventData) envoie le EventData à une passerelle de service, qui à son tour transfère l’EventData à l’une des partitions de l’EventHub. Voici l’algorithme de transfert de messages :

i. Transférer les EventDatas aux partitions EventHub, en distribuant également les données entre toutes les partitions (par exemple , tourniquet d’eventDatas à toutes les partitions EventHub)

ii. Si l’une des partitions EventHub n’est pas disponible pendant un instant, la passerelle de service la détecte automatiquement et transfère le message à une autre partition disponible, ce qui rend l’opération d’envoi hautement disponible.

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

Paramètres

eventData
EventData

à EventData envoyer.

Retours

Tâche qui se termine lorsque les opérations d’envoi sont terminées.

Voir aussi

S’applique à

SendAsync(EventDataBatch)

Source:
EventHubClient.cs

Envoyez un lot de EventData dans 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

Paramètres

eventDataBatch
EventDataBatch

lot d’événements à envoyer à EventHub

Retours

Tâche qui se termine lorsque l’opération d’envoi est terminée.

S’applique à

SendAsync(IEnumerable<EventData>)

Source:
EventHubClient.cs

Envoyez un lot de EventData à EventHub. L’EventData envoyé atterrit sur n’importe quelle partition EventHub choisie arbitrairement. Il s’agit de la méthode la plus recommandée pour envoyer à EventHub.

Il existe 3 façons d’envoyer à EventHubs. Pour comprendre ce type particulier d’envoi, reportez-vous à la surcharge SendAsync(EventData), qui est utilisée pour envoyer un seul EventData. Utilisez cette surcharge si vous devez envoyer un lot de EventData.

L’envoi d’un lot de EventDataest utile dans les cas suivants :

i. Envoi efficace : l’envoi d’un lot de EventData optimise le débit global en utilisant de manière optimale le nombre de sessions créées pour le service d’EventHub.

ii. Envoyer plusieurs EventDatadans une transaction. Pour obtenir les propriétés ACID, le service de passerelle transfère tous les EventDatafichiers du lot à une seule partition EventHub.

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

Paramètres

eventDatas
IEnumerable<EventData>

Lot d’événements à envoyer à EventHub

Retours

Tâche qui se termine lorsque les opérations d’envoi sont terminées.

Exemples

Exemple de code :

var client = EventHubClient.Create("__connectionString__");
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 client.SendAsync(events);
    Console.WriteLine("Sent Batch... Size: {0}", events.Count);
}

Voir aussi

S’applique à

SendAsync(EventData, String)

Source:
EventHubClient.cs

Envoie un 'EventData avec une partitionKey à EventHub. Tous les EventDataavec une partitionKey sont garantis pour atterrir sur la même partition. Ce modèle d’envoi met l’accent sur la corrélation des données par rapport à la disponibilité générale et à la latence.

Il existe 3 façons d’envoyer à EventHubs, chacune exposée en tant que méthode (avec sa surcharge par lot) :

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

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

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

Utilisez ce type d’envoi si :

a) Il est nécessaire d’établir une corrélation des événements en fonction de la instance de l’expéditeur ; L’expéditeur peut générer un UniqueId et le définir en tant que partitionKey, qui sur le message reçu peut être utilisé pour la corrélation

b) Le client souhaite prendre le contrôle de la distribution des données entre les partitions.

Plusieurs PartitionKeys peuvent être mappées à une seule partition. Le service EventHubs utilise un algorithme de hachage propriétaire pour mapper partitionKey à un PartitionId. L’utilisation de ce type d’envoi (envoi à l’aide d’une partitionKey spécifique) peut parfois entraîner des partitions qui ne sont pas distribuées uniformément.
public System.Threading.Tasks.Task SendAsync (Microsoft.Azure.EventHubs.EventData eventData, string partitionKey);
member this.SendAsync : Microsoft.Azure.EventHubs.EventData * string -> System.Threading.Tasks.Task
Public Function SendAsync (eventData As EventData, partitionKey As String) As Task

Paramètres

eventData
EventData

à EventData envoyer.

partitionKey
String

partitionKey sera haché pour déterminer le partitionId à lequel envoyer eventData. Dans le message Reçu, vous pouvez accéder à l’adresse PartitionKey.

Retours

Tâche qui se termine lorsque l’opération d’envoi est terminée.

Voir aussi

S’applique à

SendAsync(IEnumerable<EventData>, String)

Source:
EventHubClient.cs

Envoyez un « lot de EventData avec la même partitionKey » à EventHub. Tous les EventDataavec une partitionKey sont garantis pour atterrir sur la même partition. Plusieurs PartitionKeys seront mappés à une seule partition.

Il existe 3 façons d’envoyer à EventHubs. Pour comprendre ce type particulier d’envoi, reportez-vous à la surcharge SendAsync(EventData, String), qui est le même type d’envoi et qui est utilisé pour envoyer un seul EventData.

L’envoi d’un lot de EventDataest utile dans les cas suivants :

i. Envoi efficace : l’envoi d’un lot de permet d’optimiser EventData le débit global en utilisant de manière optimale le nombre de sessions créées pour le service EventHubs.

ii. Envoi de plusieurs événements dans Une transaction. C’est la raison pour laquelle tous les événements envoyés dans un lot doivent avoir la même partitionKey (afin qu’ils soient envoyés à une seule partition).

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

Paramètres

eventDatas
IEnumerable<EventData>

lot d’événements à envoyer à EventHub

partitionKey
String

partitionKey sera haché pour déterminer le partitionId à lequel envoyer eventData. Dans le message Reçu, vous pouvez accéder à l’adresse PartitionKey.

Retours

Tâche qui se termine lorsque l’opération d’envoi est terminée.

Voir aussi

S’applique à