EventHubBufferedProducerClient class
O EventHubBufferedProducerClient
é usado para publicar eventos em um Hub de Eventos específico.
O EventHubBufferedProducerClient
não publica eventos imediatamente.
Em vez disso, os eventos são armazenados em buffer para que possam ser colocados em lote e publicados com eficiência quando o lote estiver cheio ou o maxWaitTimeInMs
tiver decorrido sem novos eventos enfileirados.
Dependendo das opções especificadas quando os eventos são enfileirados, eles podem ser atribuídos automaticamente a uma partição, agrupados de acordo com a chave de partição especificada ou atribuídos a uma partição solicitada especificamente.
Esse modelo destina-se a deslocar a carga do gerenciamento em lote dos chamadores, ao custo do tempo não determinístico, para quando os eventos serão publicados. Também há compensações adicionais a serem consideradas:
- Se o aplicativo falhar, os eventos no buffer não terão sido publicados. Para evitar a perda de dados, os chamadores são incentivados a acompanhar o progresso da publicação usando os
onSendEventsSuccessHandler
manipuladores eonSendEventsErrorHandler
. - Os eventos que especificam uma chave de partição podem receber uma partição diferente daquelas que usam a mesma chave com outros produtores.
- No caso improvável de uma partição ficar temporariamente indisponível, o
EventHubBufferedProducerClient
pode levar mais tempo para ser recuperado do que outros produtores.
Em cenários em que é importante ter eventos publicados imediatamente com um resultado determinístico, verifique se as chaves de partição são atribuídas a uma partição consistente com outros editores ou quando a maximização da disponibilidade é um requisito, usando o EventHubProducerClient
é recomendado.
Construtores
Event |
A |
Event |
A |
Event |
A |
Propriedades
event |
O nome da instância do Hub de Eventos para a qual esse cliente é criado. |
fully |
O namespace totalmente qualificado da instância do Hub de Eventos para a qual esse cliente é criado. É provável que isso seja semelhante a .servicebus.windows.net. |
identifier | O nome usado para identificar este EventHubBufferedProducerClient. Se não for especificado ou vazio, um aleatório exclusivo será gerado. |
Métodos
close(Buffered |
Fecha a conexão AMQP com a instância do Hub de Eventos, retornando uma promessa que será resolvida quando a desconexão for concluída. Isso aguardará que os eventos enfileirados sejam liberados para o serviço antes de fechar a conexão.
Para fechar sem liberar, defina a opção |
enqueue |
Enfileira um evento no buffer a ser publicado no Hub de Eventos. Se não houver capacidade no buffer quando esse método for invocado, ele aguardará o espaço ficar disponível e garantirá que o evento tenha sido enfileirado. Quando essa chamada retorna, o evento foi aceito no buffer, mas pode não ter sido publicado ainda. A publicação ocorrerá em um ponto não determinístico no futuro à medida que o buffer for processado. |
enqueue |
Enfileira eventos no buffer a serem publicados no Hub de Eventos. Se não houver capacidade no buffer quando esse método for invocado, ele aguardará o espaço ficar disponível e garantirá que os eventos tenham sido enfileirados. Quando essa chamada retorna, os eventos foram aceitos no buffer, mas talvez ainda não tenham sido publicados. A publicação ocorrerá em um ponto não determinístico no futuro à medida que o buffer for processado. |
flush(Buffered |
Tenta publicar todos os eventos no buffer imediatamente.
Isso pode resultar na publicação de vários lotes, o resultado de cada um deles será relatado individualmente pelos |
get |
Fornece as informações de runtime do Hub de Eventos. |
get |
Fornece a ID para cada partição associada ao Hub de Eventos. |
get |
Fornece informações sobre o estado da partição especificada. |
Detalhes do construtor
EventHubBufferedProducerClient(string, EventHubBufferedProducerClientOptions)
A EventHubBufferedProducerClient
classe é usada para enviar eventos para um Hub de Eventos.
Use o options
parmeter para definir a política de repetição ou as configurações de proxy.
new EventHubBufferedProducerClient(connectionString: string, options: EventHubBufferedProducerClientOptions)
Parâmetros
- connectionString
-
string
A cadeia de conexão a ser usada para se conectar à instância do Hub de Eventos. Espera-se que as propriedades de chave compartilhada e o caminho do Hub de Eventos estejam contidos nessa cadeia de conexão. por exemplo, 'Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key; EntityPath=my-event-hub-name'.
Um conjunto de opções a serem aplicadas ao configurar o cliente.
-
retryOptions
: configura a política de repetição para todas as operações no cliente. Por exemplo,{ "maxRetries": 4 }
ou{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura a canalização da conexão AMQP por meio de Web Sockets. -
userAgent
: uma cadeia de caracteres a ser acrescentada à cadeia de caracteres interna do agente de usuário que é passada para o serviço.
EventHubBufferedProducerClient(string, string, EventHubBufferedProducerClientOptions)
A EventHubBufferedProducerClient
classe é usada para enviar eventos para um Hub de Eventos.
Use o options
parmeter para definir a política de repetição ou as configurações de proxy.
new EventHubBufferedProducerClient(connectionString: string, eventHubName: string, options: EventHubBufferedProducerClientOptions)
Parâmetros
- connectionString
-
string
A cadeia de conexão a ser usada para se conectar ao namespace dos Hubs de Eventos. Espera-se que as propriedades de chave compartilhada estejam contidas nessa cadeia de conexão, mas não no caminho do Hub de Eventos, por exemplo, 'Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/;SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key;'.
- eventHubName
-
string
O nome do Hub de Eventos específico ao qual conectar o cliente.
Um conjunto de opções a serem aplicadas ao configurar o cliente.
-
retryOptions
: configura a política de repetição para todas as operações no cliente. Por exemplo,{ "maxRetries": 4 }
ou{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura a canalização da conexão AMQP por meio de Web Sockets. -
userAgent
: uma cadeia de caracteres a ser acrescentada à cadeia de caracteres interna do agente de usuário que é passada para o serviço.
EventHubBufferedProducerClient(string, string, TokenCredential | NamedKeyCredential | SASCredential, EventHubBufferedProducerClientOptions)
A EventHubBufferedProducerClient
classe é usada para enviar eventos para um Hub de Eventos.
Use o options
parmeter para definir a política de repetição ou as configurações de proxy.
new EventHubBufferedProducerClient(fullyQualifiedNamespace: string, eventHubName: string, credential: TokenCredential | NamedKeyCredential | SASCredential, options: EventHubBufferedProducerClientOptions)
Parâmetros
- fullyQualifiedNamespace
-
string
O namespace completo que provavelmente será semelhante a .servicebus.windows.net
- eventHubName
-
string
O nome do Hub de Eventos específico ao qual conectar o cliente.
- credential
Um objeto de credencial usado pelo cliente para obter o token para autenticar a conexão com o serviço Hubs de Eventos do Azure.
Consulte @azure/identity para criar credenciais que dão suporte à autenticação do AAD. Use o AzureNamedKeyCredential
de @azure/core-auth se você quiser passar um SharedAccessKeyName
e SharedAccessKey
sem usar uma cadeia de conexão. Esses campos são mapeados para o name
campo e key
, respectivamente, em AzureNamedKeyCredential
.
Use o AzureSASCredential
de @azure/core-auth se quiser passar um SharedAccessSignature
sem usar uma cadeia de conexão. Esse campo é mapeado para signature
em AzureSASCredential
.
Um conjunto de opções a serem aplicadas ao configurar o cliente.
-
retryOptions
: configura a política de repetição para todas as operações no cliente. Por exemplo,{ "maxRetries": 4 }
ou{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura a canalização da conexão AMQP por meio de Web Sockets. -
userAgent
: uma cadeia de caracteres a ser acrescentada à cadeia de caracteres interna do agente de usuário que é passada para o serviço.
Detalhes da propriedade
eventHubName
O nome da instância do Hub de Eventos para a qual esse cliente é criado.
string eventHubName
Valor da propriedade
string
fullyQualifiedNamespace
O namespace totalmente qualificado da instância do Hub de Eventos para a qual esse cliente é criado. É provável que isso seja semelhante a .servicebus.windows.net.
string fullyQualifiedNamespace
Valor da propriedade
string
identifier
O nome usado para identificar este EventHubBufferedProducerClient. Se não for especificado ou vazio, um aleatório exclusivo será gerado.
identifier: string
Valor da propriedade
string
Detalhes do método
close(BufferedCloseOptions)
Fecha a conexão AMQP com a instância do Hub de Eventos, retornando uma promessa que será resolvida quando a desconexão for concluída.
Isso aguardará que os eventos enfileirados sejam liberados para o serviço antes de fechar a conexão.
Para fechar sem liberar, defina a opção flush
como false
.
function close(options?: BufferedCloseOptions): Promise<void>
Parâmetros
- options
- BufferedCloseOptions
O conjunto de opções a serem aplicadas à chamada de operação.
Retornos
Promise<void>
Prometo
enqueueEvent(EventData | AmqpAnnotatedMessage, EnqueueEventOptions)
Enfileira um evento no buffer a ser publicado no Hub de Eventos. Se não houver capacidade no buffer quando esse método for invocado, ele aguardará o espaço ficar disponível e garantirá que o evento tenha sido enfileirado.
Quando essa chamada retorna, o evento foi aceito no buffer, mas pode não ter sido publicado ainda. A publicação ocorrerá em um ponto não determinístico no futuro à medida que o buffer for processado.
function enqueueEvent(event: EventData | AmqpAnnotatedMessage, options?: EnqueueEventOptions): Promise<number>
Parâmetros
- event
- options
- EnqueueEventOptions
Um conjunto de opções que podem ser especificadas para influenciar a maneira como o evento é enviado para o Hub de Eventos associado.
-
abortSignal
: um sinal usado para cancelar a operação enqueueEvent. -
partitionId
: a partição para a qual esse conjunto de eventos será enviado. Se definido,partitionKey
não poderá ser definido. -
partitionKey
: um valor que é hash para produzir uma atribuição de partição. Se definido,partitionId
não poderá ser definido.
Retornos
Promise<number>
O número total de eventos atualmente armazenados em buffer e aguardando para serem publicados em todas as partições.
enqueueEvents(EventData[] | AmqpAnnotatedMessage[], EnqueueEventOptions)
Enfileira eventos no buffer a serem publicados no Hub de Eventos. Se não houver capacidade no buffer quando esse método for invocado, ele aguardará o espaço ficar disponível e garantirá que os eventos tenham sido enfileirados.
Quando essa chamada retorna, os eventos foram aceitos no buffer, mas talvez ainda não tenham sido publicados. A publicação ocorrerá em um ponto não determinístico no futuro à medida que o buffer for processado.
function enqueueEvents(events: EventData[] | AmqpAnnotatedMessage[], options?: EnqueueEventOptions): Promise<number>
Parâmetros
- events
Uma matriz de EventData ou AmqpAnnotatedMessage
.
- options
- EnqueueEventOptions
Um conjunto de opções que podem ser especificadas para influenciar a maneira como os eventos são enviados para o Hub de Eventos associado.
-
abortSignal
: um sinal usado para cancelar a operação enqueueEvents. -
partitionId
: a partição para a qual esse conjunto de eventos será enviado. Se definido,partitionKey
não poderá ser definido. -
partitionKey
: um valor que é hash para produzir uma atribuição de partição. Se definido,partitionId
não poderá ser definido.
Retornos
Promise<number>
O número total de eventos atualmente armazenados em buffer e aguardando para serem publicados em todas as partições.
flush(BufferedFlushOptions)
Tenta publicar todos os eventos no buffer imediatamente.
Isso pode resultar na publicação de vários lotes, o resultado de cada um deles será relatado individualmente pelos onSendEventsSuccessHandler
manipuladores e onSendEventsErrorHandler
.
function flush(options?: BufferedFlushOptions): Promise<void>
Parâmetros
- options
- BufferedFlushOptions
O conjunto de opções a serem aplicadas à chamada de operação.
Retornos
Promise<void>
getEventHubProperties(GetEventHubPropertiesOptions)
Fornece as informações de runtime do Hub de Eventos.
function getEventHubProperties(options?: GetEventHubPropertiesOptions): Promise<EventHubProperties>
Parâmetros
- options
- GetEventHubPropertiesOptions
O conjunto de opções a serem aplicadas à chamada de operação.
Retornos
Promise<EventHubProperties>
Uma promessa que é resolvida com informações sobre a instância do Hub de Eventos.
getPartitionIds(GetPartitionIdsOptions)
Fornece a ID para cada partição associada ao Hub de Eventos.
function getPartitionIds(options?: GetPartitionIdsOptions): Promise<string[]>
Parâmetros
- options
- GetPartitionIdsOptions
O conjunto de opções a serem aplicadas à chamada de operação.
Retornos
Promise<string[]>
Uma promessa que é resolvida com uma Matriz de cadeias de caracteres que representa a ID de cada partição associada ao Hub de Eventos.
getPartitionProperties(string, GetPartitionPropertiesOptions)
Fornece informações sobre o estado da partição especificada.
function getPartitionProperties(partitionId: string, options?: GetPartitionPropertiesOptions): Promise<PartitionProperties>
Parâmetros
- partitionId
-
string
A ID da partição para a qual as informações são necessárias.
- options
- GetPartitionPropertiesOptions
O conjunto de opções a serem aplicadas à chamada de operação.
Retornos
Promise<PartitionProperties>
Uma promessa que é resolvida com informações sobre o estado da partição .