EventHubBufferedProducerClient class
É EventHubBufferedProducerClient
utilizado para publicar eventos num Hub de Eventos específico.
O EventHubBufferedProducerClient
não publica eventos imediatamente.
Em vez disso, os eventos são colocados em memória intermédia para que possam ser colocados em lotes e publicados de forma eficiente quando o lote estiver cheio ou o maxWaitTimeInMs
tiver decorrido sem novos eventos em fila.
Consoante as opções especificadas quando os eventos são colocados em fila, podem ser automaticamente atribuídos a uma partição, agrupadas de acordo com a chave de partição especificada ou atribuídas a uma partição especificamente pedida.
Este modelo destina-se a transferir o fardo da gestão de lotes dos autores de chamadas, à custa de tempo não determinista, para quando os eventos serão publicados. Existem também compromissos adicionais a considerar:
- Se a aplicação falhar, os eventos na memória intermédia não terão sido publicados. Para evitar a perda de dados, os autores de chamadas são encorajados a controlar o progresso da publicação com os
onSendEventsSuccessHandler
processadores eonSendEventsErrorHandler
. - Os eventos que especificam uma chave de partição podem ser atribuídos a uma partição diferente das que utilizam a mesma chave com outros produtores.
- No caso improvável de uma partição ficar temporariamente indisponível, a
EventHubBufferedProducerClient
recuperação poderá demorar mais tempo do que outros produtores.
Nos cenários em que é importante ter eventos publicados imediatamente com um resultado determinista, certifique-se de que as chaves de partição são atribuídas a uma partição consistente com outros editores ou em que maximizar a disponibilidade é um requisito, sendo recomendada a utilização das EventHubProducerClient
mesmas.
Construtores
Event |
A |
Event |
A |
Event |
A |
Propriedades
event |
O nome da instância do Hub de Eventos para a qual este cliente é criado. |
fully |
O espaço de nomes completamente qualificado da instância do Hub de Eventos para a qual este cliente é criado. É provável que seja semelhante a .servicebus.windows.net. |
identifier | O nome utilizado para identificar este EventHubBufferedProducerClient. Se não for especificado ou vazio, será gerado um exclusivo aleatório. |
Métodos
close(Buffered |
Fecha a ligação AMQP à instância do Hub de Eventos, devolvendo uma promessa que será resolvida quando a desconexão estiver concluída. Isto aguardará que os eventos enqueutados sejam descarregados para o serviço antes de fechar a ligação.
Para fechar sem a descarga, defina a opção |
enqueue |
Coloca um evento na memória intermédia para ser publicado no Hub de Eventos. Se não existir capacidade na memória intermédia quando este método for invocado, aguardará que o espaço fique disponível e certifique-se de que o evento foi colocado em fila. Quando esta chamada é devolvida, o evento foi aceite na memória intermédia, mas poderá ainda não ter sido publicado. A publicação terá lugar num ponto não administrativo no futuro à medida que a memória intermédia é processada. |
enqueue |
Coloca os eventos na memória intermédia para serem publicados no Hub de Eventos. Se não existir capacidade na memória intermédia quando este método for invocado, aguardará que o espaço fique disponível e certifique-se de que os eventos foram colocados em fila. Quando esta chamada é devolvida, os eventos foram aceites na memória intermédia, mas podem ainda não ter sido publicados. A publicação terá lugar num ponto não administrativo no futuro à medida que a memória intermédia é processada. |
flush(Buffered |
Tenta publicar todos os eventos na memória intermédia imediatamente.
Isto pode resultar na publicação de vários lotes, o resultado de cada um dos quais será comunicado individualmente pelos |
get |
Fornece as informações de runtime do Hub de Eventos. |
get |
Fornece o 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 é utilizada para enviar eventos para um Hub de Eventos.
Utilize o options
parmeter para configurar a política de repetição ou as definições de proxy.
new EventHubBufferedProducerClient(connectionString: string, options: EventHubBufferedProducerClientOptions)
Parâmetros
- connectionString
-
string
A cadeia de ligação a utilizar para ligar à instância do Hub de Eventos. Espera-se que as propriedades da chave partilhada e o caminho do Hub de Eventos estejam contidos nesta cadeia de ligaçã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 aplicar 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 ligação AMQP através de Sockets Web. -
userAgent
: uma cadeia para acrescentar à cadeia de agente de utilizador incorporada que é transmitida ao serviço.
EventHubBufferedProducerClient(string, string, EventHubBufferedProducerClientOptions)
A EventHubBufferedProducerClient
classe é utilizada para enviar eventos para um Hub de Eventos.
Utilize o options
parmeter para configurar a política de repetição ou as definições de proxy.
new EventHubBufferedProducerClient(connectionString: string, eventHubName: string, options: EventHubBufferedProducerClientOptions)
Parâmetros
- connectionString
-
string
A cadeia de ligação a utilizar para ligar ao espaço de nomes dos Hubs de Eventos. Espera-se que as propriedades da chave partilhada estejam contidas nesta cadeia de ligação, mas não o 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 ligar o cliente.
Um conjunto de opções a aplicar 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 ligação AMQP através de Sockets Web. -
userAgent
: uma cadeia para acrescentar à cadeia de agente de utilizador incorporada que é transmitida ao serviço.
EventHubBufferedProducerClient(string, string, TokenCredential | NamedKeyCredential | SASCredential, EventHubBufferedProducerClientOptions)
A EventHubBufferedProducerClient
classe é utilizada para enviar eventos para um Hub de Eventos.
Utilize o options
parmeter para configurar a política de repetição ou as definições de proxy.
new EventHubBufferedProducerClient(fullyQualifiedNamespace: string, eventHubName: string, credential: TokenCredential | NamedKeyCredential | SASCredential, options: EventHubBufferedProducerClientOptions)
Parâmetros
- fullyQualifiedNamespace
-
string
O espaço de nomes completo que provavelmente será semelhante a .servicebus.windows.net
- eventHubName
-
string
O nome do Hub de Eventos específico ao qual ligar o cliente.
- credential
Um objeto de credencial utilizado pelo cliente para obter o token para autenticar a ligação com o serviço Hubs de Eventos do Azure.
Veja @azure/identidade para criar credenciais que suportem a autenticação do AAD. Utilize a AzureNamedKeyCredential
de @azure/core-auth se quiser transmitir uma SharedAccessKeyName
e SharedAccessKey
sem utilizar uma cadeia de ligação. Estes campos mapeiam para o name
campo e key
, respetivamente, em AzureNamedKeyCredential
.
Utilize a AzureSASCredential
de @azure/core-auth se quiser transmitir uma SharedAccessSignature
sem utilizar uma cadeia de ligação. Este campo mapeia para signature
em AzureSASCredential
.
Um conjunto de opções a aplicar 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 ligação AMQP através de Sockets Web. -
userAgent
: uma cadeia para acrescentar à cadeia de agente de utilizador incorporada que é transmitida ao serviço.
Detalhes de Propriedade
eventHubName
O nome da instância do Hub de Eventos para a qual este cliente é criado.
string eventHubName
Valor de Propriedade
string
fullyQualifiedNamespace
O espaço de nomes completamente qualificado da instância do Hub de Eventos para a qual este cliente é criado. É provável que seja semelhante a .servicebus.windows.net.
string fullyQualifiedNamespace
Valor de Propriedade
string
identifier
O nome utilizado para identificar este EventHubBufferedProducerClient. Se não for especificado ou vazio, será gerado um exclusivo aleatório.
identifier: string
Valor de Propriedade
string
Detalhes de Método
close(BufferedCloseOptions)
Fecha a ligação AMQP à instância do Hub de Eventos, devolvendo uma promessa que será resolvida quando a desconexão estiver concluída.
Isto aguardará que os eventos enqueutados sejam descarregados para o serviço antes de fechar a ligação.
Para fechar sem a descarga, defina a opção flush
como false
.
function close(options?: BufferedCloseOptions): Promise<void>
Parâmetros
- options
- BufferedCloseOptions
O conjunto de opções a aplicar à chamada de operação.
Devoluções
Promise<void>
Promessa
enqueueEvent(EventData | AmqpAnnotatedMessage, EnqueueEventOptions)
Coloca um evento na memória intermédia para ser publicado no Hub de Eventos. Se não existir capacidade na memória intermédia quando este método for invocado, aguardará que o espaço fique disponível e certifique-se de que o evento foi colocado em fila.
Quando esta chamada é devolvida, o evento foi aceite na memória intermédia, mas poderá ainda não ter sido publicado. A publicação terá lugar num ponto não administrativo no futuro à medida que a memória intermédia é processada.
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 forma como o evento é enviado para o Hub de Eventos associado.
-
abortSignal
: um sinal utilizado para cancelar a operação enqueueEvent. -
partitionId
: a partição para a qual este conjunto de eventos será enviado. Se estiver definido,partitionKey
não pode ser definido. -
partitionKey
: um valor que é hashed para produzir uma atribuição de partição. Se estiver definido,partitionId
não pode ser definido.
Devoluções
Promise<number>
O número total de eventos que estão atualmente em memória intermédia e à espera de serem publicados, em todas as partições.
enqueueEvents(EventData[] | AmqpAnnotatedMessage[], EnqueueEventOptions)
Coloca os eventos na memória intermédia para serem publicados no Hub de Eventos. Se não existir capacidade na memória intermédia quando este método for invocado, aguardará que o espaço fique disponível e certifique-se de que os eventos foram colocados em fila.
Quando esta chamada é devolvida, os eventos foram aceites na memória intermédia, mas podem ainda não ter sido publicados. A publicação terá lugar num ponto não administrativo no futuro à medida que a memória intermédia é processada.
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 forma como os eventos são enviados para o Hub de Eventos associado.
-
abortSignal
: um sinal utilizado para cancelar a operação enqueueEvents. -
partitionId
: a partição para a qual este conjunto de eventos será enviado. Se estiver definido,partitionKey
não pode ser definido. -
partitionKey
: um valor que é hashed para produzir uma atribuição de partição. Se estiver definido,partitionId
não pode ser definido.
Devoluções
Promise<number>
O número total de eventos que estão atualmente em memória intermédia e à espera de serem publicados, em todas as partições.
flush(BufferedFlushOptions)
Tenta publicar todos os eventos na memória intermédia imediatamente.
Isto pode resultar na publicação de vários lotes, o resultado de cada um dos quais será comunicado individualmente pelos onSendEventsSuccessHandler
processadores e onSendEventsErrorHandler
.
function flush(options?: BufferedFlushOptions): Promise<void>
Parâmetros
- options
- BufferedFlushOptions
O conjunto de opções a aplicar à chamada de operação.
Devoluções
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 aplicar à chamada de operação.
Devoluções
Promise<EventHubProperties>
Uma promessa que resolve com informações sobre a instância do Hub de Eventos.
getPartitionIds(GetPartitionIdsOptions)
Fornece o 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 aplicar à chamada de operação.
Devoluções
Promise<string[]>
Uma promessa que resolve com uma Matriz de cadeias que representa o 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
O ID da partição para a qual são necessárias informações.
- options
- GetPartitionPropertiesOptions
O conjunto de opções a aplicar à chamada de operação.
Devoluções
Promise<PartitionProperties>
Uma promessa que resolve com informações sobre o estado da partição .