EventHubClient.SendAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
SendAsync(EventData) |
Enviar EventData para o EventHub. O EventData enviado será enviado em qualquer partição de EventHubs escolhida arbitrariamente. Há três maneiras de enviar para EventHubs, cada uma exposta como um método (juntamente com sua sobrecarga sendBatch): i. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>) ii. SendAsync(EventData, String) ou SendAsync(IEnumerable<EventData>, String) iii. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>) Use este método para enviar se:a) a SendAsync(EventData) operação deve estar altamente disponível e b) os dados precisam ser distribuídos uniformemente entre todas as partições; exceção, quando um subconjunto de partições está indisponível SendAsync(EventData) envia o EventData para um Gateway de Serviço, que, por sua vez, encaminhará o EventData para uma das partições do EventHub. Este é o algoritmo de encaminhamento de mensagens:i. Encaminhe o EventDatas para partições do EventHub, distribuindo igualmente os dados entre todas as partições (por exemplo: Round-robin do EventDatas para todas as partições do EventHub) ii. Se uma das partições do EventHub ficar indisponível por um momento, o Gateway de Serviço a detectará automaticamente e encaminhará a mensagem para outra partição disponível, tornando a operação de envio altamente disponível. |
SendAsync(EventDataBatch) |
Envie um lote de EventData em EventDataBatch. |
SendAsync(IEnumerable<EventData>) |
Envie um lote de EventData para o EventHub. O EventData enviado será enviado em qualquer partição do EventHub escolhida arbitrariamente. Essa é a maneira mais recomendada de enviar para o EventHub. Há três maneiras de enviar para EventHubs, para entender esse tipo específico de envio, consulte a sobrecarga SendAsync(EventData), que é usada para enviar um único EventData. Use essa sobrecarga se precisar enviar um lote de EventData. O envio de um lote de EventDataé útil nos seguintes casos: i. Envio eficiente – o envio de um lote de maximiza a taxa de EventData transferência geral de maneira ideal usando o número de sessões criadas para o serviço do EventHub. ii. Enviar vários EventDataem uma Transação. Para obter propriedades ACID, o Serviço de Gateway encaminhará todos os EventDatado lote para uma única partição do EventHub. |
SendAsync(EventData, String) |
Envia um 'EventData com uma partitionKey para o EventHub. Todos com EventDatauma partitionKey têm a garantia de pousar na mesma partição. Esse padrão de envio enfatiza a correlação de dados em relação à disponibilidade geral e à latência. Há três maneiras de enviar para EventHubs, cada uma exposta como um método (juntamente com sua sobrecarga em lote): i. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>) ii. SendAsync(EventData, String) ou SendAsync(IEnumerable<EventData>, String) iii. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>) Use esse tipo de envio se:a) Há a necessidade de correlação de eventos com base na instância do Remetente; O remetente pode gerar um UniqueId e defini-lo como partitionKey - que na mensagem recebida pode ser usada para correlação b) O cliente deseja assumir o controle da distribuição de dados entre partições. Várias PartitionKeys podem ser mapeadas para uma partição. O serviço EventHubs usa um algoritmo hash proprietário para mapear PartitionKey para um PartitionId. O uso desse tipo de envio (envio usando uma partitionKey específica) às vezes pode resultar em partições que não são distribuídas uniformemente. |
SendAsync(IEnumerable<EventData>, String) |
Envie um 'lote de EventData com a mesma partitionKey' para o EventHub. Todos com EventDatauma partitionKey têm a garantia de pousar na mesma partição. Várias PartitionKey serão mapeadas para uma partição. Há três maneiras de enviar para EventHubs, para entender esse tipo específico de envio, consulte a sobrecarga SendAsync(EventData, String), que é o mesmo tipo de envio e é usada para enviar um único EventData. O envio de um lote de EventDataé útil nos seguintes casos:i. Envio eficiente – o envio de um lote de maximiza a taxa de EventData transferência geral de maneira ideal usando o número de sessões criadas para o serviço EventHubs. ii. Enviando vários eventos em uma transação. Esse é o motivo pelo qual todos os eventos enviados em um lote precisam ter a mesma partitionKey (para que sejam enviados apenas para uma partição). |
SendAsync(EventData)
- Origem:
- EventHubClient.cs
Enviar EventData para o EventHub. O EventData enviado será enviado em qualquer partição de EventHubs escolhida arbitrariamente.
Há três maneiras de enviar para EventHubs, cada uma exposta como um método (juntamente com sua sobrecarga sendBatch):
i. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>)
ii. SendAsync(EventData, String) ou SendAsync(IEnumerable<EventData>, String)
iii. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>)
Use este método para enviar se:a) a SendAsync(EventData) operação deve estar altamente disponível e
b) os dados precisam ser distribuídos uniformemente entre todas as partições; exceção, quando um subconjunto de partições está indisponível
SendAsync(EventData) envia o EventData para um Gateway de Serviço, que, por sua vez, encaminhará o EventData para uma das partições do EventHub. Este é o algoritmo de encaminhamento de mensagens:i. Encaminhe o EventDatas para partições do EventHub, distribuindo igualmente os dados entre todas as partições (por exemplo: Round-robin do EventDatas para todas as partições do EventHub)
ii. Se uma das partições do EventHub ficar indisponível por um momento, o Gateway de Serviço a detectará automaticamente e encaminhará a mensagem para outra partição disponível, tornando a operação de envio altamente disponível.
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
Retornos
Uma Tarefa que é concluída quando as operações de envio são concluídas.
Confira também
Aplica-se a
SendAsync(EventDataBatch)
- Origem:
- EventHubClient.cs
Envie um lote de EventData em 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
o lote de eventos a serem enviados para o EventHub
Retornos
Uma Tarefa que é concluída quando a operação de envio é concluída.
Aplica-se a
SendAsync(IEnumerable<EventData>)
- Origem:
- EventHubClient.cs
Envie um lote de EventData para o EventHub. O EventData enviado será enviado em qualquer partição do EventHub escolhida arbitrariamente. Essa é a maneira mais recomendada de enviar para o EventHub.
Há três maneiras de enviar para EventHubs, para entender esse tipo específico de envio, consulte a sobrecarga SendAsync(EventData), que é usada para enviar um único EventData. Use essa sobrecarga se precisar enviar um lote de EventData.
O envio de um lote de EventDataé útil nos seguintes casos:
i. Envio eficiente – o envio de um lote de maximiza a taxa de EventData transferência geral de maneira ideal usando o número de sessões criadas para o serviço do EventHub.
ii. Enviar vários EventDataem uma Transação. Para obter propriedades ACID, o Serviço de Gateway encaminhará todos os EventDatado lote para uma única partição do 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>
Um lote de eventos a serem enviados para o EventHub
Retornos
Uma Tarefa que é concluída quando as operações de envio são concluídas.
Exemplos
Exemplo 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);
}
Confira também
Aplica-se a
SendAsync(EventData, String)
- Origem:
- EventHubClient.cs
Envia um 'EventData com uma partitionKey para o EventHub. Todos com EventDatauma partitionKey têm a garantia de pousar na mesma partição. Esse padrão de envio enfatiza a correlação de dados em relação à disponibilidade geral e à latência.
Há três maneiras de enviar para EventHubs, cada uma exposta como um método (juntamente com sua sobrecarga em lote):
i. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>)
ii. SendAsync(EventData, String) ou SendAsync(IEnumerable<EventData>, String)
iii. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>)
Use esse tipo de envio se:a) Há a necessidade de correlação de eventos com base na instância do Remetente; O remetente pode gerar um UniqueId e defini-lo como partitionKey - que na mensagem recebida pode ser usada para correlação
b) O cliente deseja assumir o controle da distribuição de dados entre partições.
Várias PartitionKeys podem ser mapeadas para uma partição. O serviço EventHubs usa um algoritmo hash proprietário para mapear PartitionKey para um PartitionId. O uso desse tipo de envio (envio usando uma partitionKey específica) às vezes pode resultar em partições que não são distribuídas 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
- partitionKey
- String
a partitionKey será hashed para determinar a partitionId para a qual enviar o EventData. Na mensagem Recebida, isso pode ser acessado em PartitionKey.
Retornos
Uma Tarefa que é concluída quando a operação de envio é concluída.
Confira também
Aplica-se a
SendAsync(IEnumerable<EventData>, String)
- Origem:
- EventHubClient.cs
Envie um 'lote de EventData com a mesma partitionKey' para o EventHub. Todos com EventDatauma partitionKey têm a garantia de pousar na mesma partição. Várias PartitionKey serão mapeadas para uma partição.
Há três maneiras de enviar para EventHubs, para entender esse tipo específico de envio, consulte a sobrecarga SendAsync(EventData, String), que é o mesmo tipo de envio e é usada para enviar um único EventData.
O envio de um lote de EventDataé útil nos seguintes casos:i. Envio eficiente – o envio de um lote de maximiza a taxa de EventData transferência geral de maneira ideal usando o número de sessões criadas para o serviço EventHubs.
ii. Enviando vários eventos em uma transação. Esse é o motivo pelo qual todos os eventos enviados em um lote precisam ter a mesma partitionKey (para que sejam enviados apenas para uma partição).
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>
o lote de eventos a serem enviados para o EventHub
- partitionKey
- String
a partitionKey será hashed para determinar a partitionId para a qual enviar o EventData. Na mensagem Recebida, isso pode ser acessado em PartitionKey.
Retornos
Uma Tarefa que é concluída quando a operação de envio é concluída.
Confira também
Aplica-se a
Azure SDK for .NET