EventHubClient.SendAsync Método

Definición

Sobrecargas

SendAsync(EventData)

Enviar EventData a EventHub. EventData enviado llegará a cualquier partición de EventHubs elegida arbitrariamente.

Hay tres maneras de enviar a EventHubs, cada una expuesta como un método (junto con su sobrecarga sendBatch):

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

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

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

Use este método para enviar si:

a) la SendAsync(EventData) operación debe ser de alta disponibilidad y

b) los datos deben distribuirse uniformemente entre todas las particiones; excepción, cuando un subconjunto de particiones no está disponible

SendAsync(EventData)EventData envía a una puerta de enlace de servicio, que a su vez reenvía EventData a una de las particiones de EventHub. Este es el algoritmo de reenvío de mensajes:

i. Reenvíe eventDatas a las particiones de EventHub, distribuyendo igualmente los datos entre todas las particiones (por ejemplo: Round robin, EventDatas a todas las particiones de EventHub).

ii. Si una de las particiones de EventHub no está disponible por un momento, Service Gateway la detectará y reenviará automáticamente el mensaje a otra partición disponible, lo que hace que la operación de envío sea de alta disponibilidad.

SendAsync(EventDataBatch)

Envíe un lote de EventData en EventDataBatch.

SendAsync(IEnumerable<EventData>)

Envíe un lote de EventData a EventHub. EventData enviado llegará a cualquier partición de EventHub elegida arbitrariamente. Esta es la manera más recomendada de enviar a EventHub.

Hay tres maneras de enviar a EventHubs, para comprender este tipo determinado de envío, haga referencia a la sobrecarga SendAsync(EventData), que se usa para enviar un único EventData. Use esta sobrecarga si necesita enviar un lote de EventData.

El envío de un lote de EventDataes útil en los casos siguientes:

i. Envío eficaz: el envío de un lote de EventData maximiza el rendimiento general mediante el uso óptimo del número de sesiones creadas en el servicio de EventHub.

ii. Enviar varios EventDataen una transacción. Para obtener propiedades ACID, el servicio de puerta de enlace reenviará todo EventDatael lote a una sola partición de EventHub.

SendAsync(EventData, String)

Envía un elemento 'EventData con partitionKey a EventHub. Se garantiza que todos EventDatalos elementos con partitionKey se coloquen en la misma partición. Este patrón de envío resalta la correlación de datos sobre la disponibilidad y la latencia generales.

Hay tres maneras de enviar a EventHubs, cada una expuesta como un método (junto con su sobrecarga por lotes):

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

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

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

Use este tipo de envío si:

a) Hay una necesidad de correlación de eventos en función de la instancia del remitente; El remitente puede generar un UniqueId y establecerlo como partitionKey, que en el mensaje recibido se puede usar para la correlación.

b) El cliente quiere tomar el control de la distribución de datos entre particiones.

Se pueden asignar varias partitionKeys a una partición. El servicio EventHubs usa un algoritmo hash propietario para asignar PartitionKey a un PartitionId. El uso de este tipo de envío (envío mediante una partitionKey específica) a veces podría dar lugar a particiones que no se distribuyen uniformemente.
SendAsync(IEnumerable<EventData>, String)

Envíe un "lote de EventData con la misma partitionKey" a EventHub. Se garantiza que todos EventDatalos elementos con partitionKey se coloquen en la misma partición. Varias partitionKey se asignarán a una partición.

Hay tres maneras de enviar a EventHubs, para comprender este tipo determinado de envío, haga referencia a la sobrecarga SendAsync(EventData, String), que es el mismo tipo de envío y se usa para enviar un solo EventData.

El envío de un lote de EventDataes útil en los casos siguientes:

i. Envío eficaz: el envío de un lote de EventData maximiza el rendimiento general mediante el uso óptimo del número de sesiones creadas en el servicio EventHubs.

ii. Envío de varios eventos en una transacción. Este es el motivo por el que todos los eventos enviados en un lote deben tener la misma partitionKey (para que se envíen solo a una partición).

SendAsync(EventData)

Source:
EventHubClient.cs

Enviar EventData a EventHub. EventData enviado llegará a cualquier partición de EventHubs elegida arbitrariamente.

Hay tres maneras de enviar a EventHubs, cada una expuesta como un método (junto con su sobrecarga sendBatch):

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

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

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

Use este método para enviar si:

a) la SendAsync(EventData) operación debe ser de alta disponibilidad y

b) los datos deben distribuirse uniformemente entre todas las particiones; excepción, cuando un subconjunto de particiones no está disponible

SendAsync(EventData)EventData envía a una puerta de enlace de servicio, que a su vez reenvía EventData a una de las particiones de EventHub. Este es el algoritmo de reenvío de mensajes:

i. Reenvíe eventDatas a las particiones de EventHub, distribuyendo igualmente los datos entre todas las particiones (por ejemplo: Round robin, EventDatas a todas las particiones de EventHub).

ii. Si una de las particiones de EventHub no está disponible por un momento, Service Gateway la detectará y reenviará automáticamente el mensaje a otra partición disponible, lo que hace que la operación de envío sea de alta disponibilidad.

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

Parámetros

eventData
EventData

que EventData se va a enviar.

Devoluciones

Tarea que se completa cuando se realizan las operaciones de envío.

Consulte también

Se aplica a

SendAsync(EventDataBatch)

Source:
EventHubClient.cs

Envíe un lote de EventData en 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

Parámetros

eventDataBatch
EventDataBatch

el lote de eventos que se van a enviar a EventHub

Devoluciones

Tarea que se completa cuando se realiza la operación de envío.

Se aplica a

SendAsync(IEnumerable<EventData>)

Source:
EventHubClient.cs

Envíe un lote de EventData a EventHub. EventData enviado llegará a cualquier partición de EventHub elegida arbitrariamente. Esta es la manera más recomendada de enviar a EventHub.

Hay tres maneras de enviar a EventHubs, para comprender este tipo determinado de envío, haga referencia a la sobrecarga SendAsync(EventData), que se usa para enviar un único EventData. Use esta sobrecarga si necesita enviar un lote de EventData.

El envío de un lote de EventDataes útil en los casos siguientes:

i. Envío eficaz: el envío de un lote de EventData maximiza el rendimiento general mediante el uso óptimo del número de sesiones creadas en el servicio de EventHub.

ii. Enviar varios EventDataen una transacción. Para obtener propiedades ACID, el servicio de puerta de enlace reenviará todo EventDatael lote a una sola partición de 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

Parámetros

eventDatas
IEnumerable<EventData>

Un lote de eventos que se van a enviar a EventHub

Devoluciones

Tarea que se completa cuando se realizan las operaciones de envío.

Ejemplos

Ejemplo de código:

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);
}

Consulte también

Se aplica a

SendAsync(EventData, String)

Source:
EventHubClient.cs

Envía un elemento 'EventData con partitionKey a EventHub. Se garantiza que todos EventDatalos elementos con partitionKey se coloquen en la misma partición. Este patrón de envío resalta la correlación de datos sobre la disponibilidad y la latencia generales.

Hay tres maneras de enviar a EventHubs, cada una expuesta como un método (junto con su sobrecarga por lotes):

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

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

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

Use este tipo de envío si:

a) Hay una necesidad de correlación de eventos en función de la instancia del remitente; El remitente puede generar un UniqueId y establecerlo como partitionKey, que en el mensaje recibido se puede usar para la correlación.

b) El cliente quiere tomar el control de la distribución de datos entre particiones.

Se pueden asignar varias partitionKeys a una partición. El servicio EventHubs usa un algoritmo hash propietario para asignar PartitionKey a un PartitionId. El uso de este tipo de envío (envío mediante una partitionKey específica) a veces podría dar lugar a particiones que no se distribuyen uniformemente.
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

Parámetros

eventData
EventData

que EventData se va a enviar.

partitionKey
String

partitionKey se aplica un hash para determinar el partitionId al que se va a enviar EventData. En el mensaje Recibido, se puede acceder a este en PartitionKey.

Devoluciones

Tarea que se completa cuando se realiza la operación de envío.

Consulte también

Se aplica a

SendAsync(IEnumerable<EventData>, String)

Source:
EventHubClient.cs

Envíe un "lote de EventData con la misma partitionKey" a EventHub. Se garantiza que todos EventDatalos elementos con partitionKey se coloquen en la misma partición. Varias partitionKey se asignarán a una partición.

Hay tres maneras de enviar a EventHubs, para comprender este tipo determinado de envío, haga referencia a la sobrecarga SendAsync(EventData, String), que es el mismo tipo de envío y se usa para enviar un solo EventData.

El envío de un lote de EventDataes útil en los casos siguientes:

i. Envío eficaz: el envío de un lote de EventData maximiza el rendimiento general mediante el uso óptimo del número de sesiones creadas en el servicio EventHubs.

ii. Envío de varios eventos en una transacción. Este es el motivo por el que todos los eventos enviados en un lote deben tener la misma partitionKey (para que se envíen solo a una partición).

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

Parámetros

eventDatas
IEnumerable<EventData>

el lote de eventos que se van a enviar a EventHub

partitionKey
String

partitionKey se aplica un hash para determinar el partitionId al que se va a enviar EventData. En el mensaje Recibido, se puede acceder a este en PartitionKey.

Devoluciones

Tarea que se completa cuando se realiza la operación de envío.

Consulte también

Se aplica a