Partilhar via


EventHubClient Classe

Definição

Classe de âncora – todas as operações de cliente do EventHub começam aqui. Consulte CreateFromConnectionString(String)

public abstract class EventHubClient : Microsoft.Azure.EventHubs.ClientEntity
type EventHubClient = class
    inherit ClientEntity
Public MustInherit Class EventHubClient
Inherits ClientEntity
Herança
EventHubClient

Propriedades

ClientId

Obtém a ID do cliente.

(Herdado de ClientEntity)
EnableReceiverRuntimeMetric

Obtém ou define um valor que indica se a métrica de runtime de um receptor está habilitada.

EventHubName

Obtém o nome do EventHub.

IsClosed

Retorna um booliano que representa se o objeto cliente está fechado ou não.

(Herdado de ClientEntity)
RegisteredPlugins

Obtém uma lista de plug-ins registrados no momento para este Cliente.

(Herdado de ClientEntity)
RetryPolicy

Obtém o RetryPolicy para a ClientEntity.

(Herdado de ClientEntity)
WebProxy

Obtém ou define o proxy web. Um proxy é aplicável somente quando o tipo de transporte é definido como AmqpWebSockets. Se não estiver definido, as configurações de proxy em todo o sistema serão respeitadas.

Métodos

Close()

Fecha a ClientEntity.

(Herdado de ClientEntity)
CloseAsync()

Fecha e libera recursos associados EventHubClienta .

Create(EventHubsConnectionStringBuilder)

Cria uma nova instância do cliente dos Hubs de Eventos usando o construtor de cadeia de conexão especificado.

CreateBatch()

Cria um lote em que objetos de dados de evento podem ser adicionados para uma chamada SendAsync posterior.

CreateBatch(BatchOptions)

Cria um lote em que objetos de dados de evento podem ser adicionados para uma chamada SendAsync posterior.

CreateEpochReceiver(String, String, EventPosition, Int64, ReceiverOptions)

Crie um receptor eventhub baseado em época com determinado EventPosition. O receptor é criado para uma partição específica do EventHub do grupo de consumidores específico.

É importante prestar atenção ao seguinte ao criar o receptor baseado em época:

- Imposição de propriedade: depois de criar um receptor baseado em época, você não poderá criar um receptor não de época para a mesma combinação consumerGroup-Partition até que todos os receptores para a combinação sejam fechados.

- Roubo de propriedade: se um receptor com valor de época mais alto for criado para uma combinação consumerGroup-Partition, qualquer receptor de época mais antigo para essa combinação será forçado a fechar.

- Qualquer receptor fechado devido à perda de propriedade de uma combinação consumerGroup-Partition obterá ReceiverDisconnectedException para todas as operações desse receptor.
CreateFromConnectionString(String)

Cria uma nova instância do cliente dos Hubs de Eventos usando a cadeia de conexão especificada. Você pode preencher a propriedade EntityPath com o nome do Hub de Eventos.

CreatePartitionSender(String)

Crie um PartitionSender que possa publicar EventDatadiretamente em uma partição específica do EventHub (tipo de remetente iii. na lista abaixo).

Há três padrões/maneiras de enviar para EventHubs:

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

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

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

CreateReceiver(String, String, EventPosition, ReceiverOptions)

Crie o receptor do EventHub com determinado EventPosition. O receptor é criado para uma partição específica do EventHub do grupo de consumidores específico.

CreateWithAzureActiveDirectory(Uri, String, AzureActiveDirectoryTokenProvider+AuthenticationCallback, String, Nullable<TimeSpan>, TransportType)

Cria uma nova instância do usando a EventHubClient autenticação do Azure Active Directory.

CreateWithManagedIdentity(Uri, String, Nullable<TimeSpan>, TransportType)

Cria uma nova instância do usando a EventHubClient autenticação de Identidade Gerenciada do Azure.

CreateWithTokenProvider(Uri, String, ITokenProvider, Nullable<TimeSpan>, TransportType)

Cria uma nova instância do cliente dos Hubs de Eventos usando o ponto de extremidade, o caminho da entidade e o provedor de token especificados.

GetPartitionRuntimeInformationAsync(String)

Recupera informações de runtime para a partição especificada do Hub de Eventos.

GetRuntimeInformationAsync()

Recupera informações de runtime do EventHub

OnCloseAsync()

Classe de âncora – todas as operações de cliente do EventHub começam aqui. Consulte CreateFromConnectionString(String)

OnCreateReceiver(String, String, EventPosition, Nullable<Int64>, ReceiverOptions)

Classe de âncora – todas as operações de cliente do EventHub começam aqui. Consulte CreateFromConnectionString(String)

OnGetPartitionRuntimeInformationAsync(String)

Classe de âncora – todas as operações de cliente do EventHub começam aqui. Consulte CreateFromConnectionString(String)

OnGetRuntimeInformationAsync()

Classe de âncora – todas as operações de cliente do EventHub começam aqui. Consulte CreateFromConnectionString(String)

OnRetryPolicyUpdate()

Manipule as atualizações de política de repetição aqui.

RegisterPlugin(EventHubsPlugin)

Registra um EventHubsPlugin a ser usado com esse cliente.

(Herdado de ClientEntity)
SendAsync(EventData)

Enviar EventData para o EventHub. O EventData enviado será aterrissado 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 sendo, quando um subconjunto de partições não está disponí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 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(EventData, String)

Envia um 'EventData com uma partitionKey para o EventHub. Todos EventDatacom uma 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 a PartitionKey para uma PartitionId. O uso desse tipo de envio (envio usando uma partitionKey específica) pode, às vezes, resultar em partições que não são distribuídas uniformemente.
SendAsync(EventDataBatch)

Enviar um lote de EventData em EventDataBatch.

SendAsync(IEnumerable<EventData>)

Enviar um lote de EventData para o EventHub. O EventData enviado será aterrissado 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's é útil nos seguintes casos:

i. Envio eficiente – o envio de um lote de maximiza a taxa de EventData transferência geral usando o número de sessões criadas para o serviço do EventHub.

ii. Enviar vários EventData's em uma transação. Para criar propriedades ACID, o Serviço de Gateway encaminhará todos os EventDatado lote para uma única partição do EventHub.

SendAsync(IEnumerable<EventData>, String)

Envie um 'lote de EventData com a mesma partitionKey' para o EventHub. Todos EventDatacom uma 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's é útil nos seguintes casos:

i. Envio eficiente – o envio de um lote de maximiza a taxa de EventData transferência geral 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).

ThrowIfClosed()

Gera uma exceção se o objeto cliente já estiver fechado.

(Herdado de ClientEntity)
UnregisterPlugin(String)

Cancela o registro de um EventHubsPlugin.

(Herdado de ClientEntity)

Aplica-se a