EventHubProducerClient Classe

Definição

Um cliente responsável pela publicação EventData em um Hub de Eventos específico, agrupado em lotes. Dependendo das opções especificadas ao enviar, os eventos podem ser atribuídos automaticamente a uma partição disponível ou podem solicitar uma partição específica.

O EventHubProducerClient publica imediatamente, garantindo um resultado determinístico para cada operação de envio, embora exija que os chamadores possuam a responsabilidade de criar e gerenciar lotes.

Em cenários em que não é importante ter eventos publicados imediatamente e em que maximizar a disponibilidade da partição não é um requisito, é recomendável considerar o uso do EventHubBufferedProducerClient, que assume a responsabilidade de criar e gerenciar lotes para reduzir a complexidade de fazer isso no código do aplicativo.

public class EventHubProducerClient : IAsyncDisposable
type EventHubProducerClient = class
    interface IAsyncDisposable
Public Class EventHubProducerClient
Implements IAsyncDisposable
Herança
EventHubProducerClient
Implementações

Comentários

É recomendável permitir a atribuição de partição quando:

  • O envio de eventos precisa estar altamente disponível.
  • Os dados do evento devem ser distribuídos uniformemente entre todas as partições disponíveis.

Se nenhuma partição for especificada, as seguintes regras serão usadas para selecionar automaticamente uma:

  1. Distribua os eventos igualmente entre todas as partições disponíveis usando uma abordagem round robin.
  2. Se uma partição ficar indisponível, o serviço dos Hubs de Eventos a detectará automaticamente e encaminhará a mensagem para outra partição disponível.

O EventHubProducerClient é seguro para armazenar em cache e usar durante o tempo de vida de um aplicativo, que é a melhor prática quando o aplicativo publica eventos regularmente ou semestralmente. O produtor é responsável por garantir o uso eficiente de rede, CPU e memória. Chamar ou CloseAsync(CancellationToken)DisposeAsync() como o aplicativo está sendo desligado garantirá que os recursos de rede e outros objetos não gerenciados sejam limpos corretamente.

Construtores

EventHubProducerClient()

Inicializa uma nova instância da classe EventHubProducerClient.

EventHubProducerClient(EventHubConnection, EventHubProducerClientOptions)

Inicializa uma nova instância da classe EventHubProducerClient.

EventHubProducerClient(String)

Inicializa uma nova instância da classe EventHubProducerClient.

EventHubProducerClient(String, EventHubProducerClientOptions)

Inicializa uma nova instância da classe EventHubProducerClient.

EventHubProducerClient(String, String)

Inicializa uma nova instância da classe EventHubProducerClient.

EventHubProducerClient(String, String, AzureNamedKeyCredential, EventHubProducerClientOptions)

Inicializa uma nova instância da classe EventHubProducerClient.

EventHubProducerClient(String, String, AzureSasCredential, EventHubProducerClientOptions)

Inicializa uma nova instância da classe EventHubProducerClient.

EventHubProducerClient(String, String, EventHubProducerClientOptions)

Inicializa uma nova instância da classe EventHubProducerClient.

EventHubProducerClient(String, String, TokenCredential, EventHubProducerClientOptions)

Inicializa uma nova instância da classe EventHubProducerClient.

Propriedades

EventHubName

O nome do Hub de Eventos ao qual o produtor está conectado, específico ao namespace dos Hubs de Eventos que o contém.

FullyQualifiedNamespace

O namespace dos Hubs de Eventos totalmente qualificado ao qual o produtor está associado. É provável que isso seja semelhante a {yournamespace}.servicebus.windows.net.

Identifier

Um nome exclusivo usado para identificar esse produtor.

IsClosed

Indica se isso EventHubProducerClient foi ou não fechado.

Métodos

CloseAsync(CancellationToken)

Fecha o produtor.

CreateBatchAsync(CancellationToken)

Cria um lote de restrição de tamanho ao qual EventData pode ser adicionado usando um padrão baseado em tentativa. Se um evento exceder o tamanho máximo permitido do lote, o lote não permitirá adicionar o evento e sinalizará esse cenário usando seu valor retornado.

Como os eventos que violam a restrição de tamanho não podem ser adicionados, a publicação de um lote não disparará uma exceção ao tentar enviar os eventos para o serviço de Hubs de Eventos.

CreateBatchAsync(CreateBatchOptions, CancellationToken)

Cria um lote de restrição de tamanho ao qual EventData pode ser adicionado usando um padrão baseado em tentativa. Se um evento exceder o tamanho máximo permitido do lote, o lote não permitirá adicionar o evento e sinalizará esse cenário usando seu valor retornado.

Como os eventos que violam a restrição de tamanho não podem ser adicionados, a publicação de um lote não disparará uma exceção ao tentar enviar os eventos para o serviço de Hubs de Eventos.

DisposeAsync()

Executa a tarefa necessária para limpo recursos usados pelo EventHubProducerClient, incluindo garantir que o próprio cliente tenha sido fechado.

GetEventHubPropertiesAsync(CancellationToken)

Recupera informações sobre o Hub de Eventos ao qual a conexão está associada, incluindo o número de partições presentes e seus identificadores.

GetPartitionIdsAsync(CancellationToken)

Recupera o conjunto de identificadores para as partições de um Hub de Eventos.

GetPartitionPropertiesAsync(String, CancellationToken)

Recupera informações sobre uma partição específica para um Hub de Eventos, incluindo elementos que descrevem os eventos disponíveis no fluxo de eventos de partição.

SendAsync(EventDataBatch, CancellationToken)

Envia um conjunto de eventos para o Hub de Eventos associado usando uma abordagem em lote.

SendAsync(IEnumerable<EventData>, CancellationToken)

Envia um conjunto de eventos para o Hub de Eventos associado como uma única operação. Para evitar a sobrecarga associada à medição e validação do tamanho no cliente, a validação será delegada ao serviço hubs de eventos e será adiada até que a operação seja invocada. A chamada falhará se o tamanho do conjunto de eventos especificado exceder o tamanho máximo permitido de um único lote.

SendAsync(IEnumerable<EventData>, SendEventOptions, CancellationToken)

Envia um conjunto de eventos para o Hub de Eventos associado como uma única operação. Para evitar a sobrecarga associada à medição e validação do tamanho no cliente, a validação será delegada ao serviço hubs de eventos e será adiada até que a operação seja invocada. A chamada falhará se o tamanho do conjunto de eventos especificado exceder o tamanho máximo permitido de um único lote.

Aplica-se a

Confira também