EventHubBufferedProducerClient class
El EventHubBufferedProducerClient
se usa para publicar eventos en un centro de eventos específico.
El EventHubBufferedProducerClient
no publica eventos inmediatamente.
En su lugar, los eventos se almacenan en búfer para que se puedan procesar por lotes y publicarse de forma eficaz cuando el lote esté lleno o el maxWaitTimeInMs
haya transcurrido sin nuevos eventos en cola.
Dependiendo de las opciones especificadas cuando se pone en cola los eventos, se pueden asignar automáticamente a una partición, agruparse según la clave de partición especificada o asignar una partición solicitada específicamente.
Este modelo está diseñado para desplazar la carga de la administración por lotes de los autores de llamadas, a costa de los tiempos no deterministas, para cuando se publiquen los eventos. Hay ventajas y desventajas adicionales que se deben tener en cuenta, así como:
- Si la aplicación se bloquea, no se publicarán los eventos del búfer. Para evitar la pérdida de datos, se recomienda a los autores de llamadas realizar un seguimiento del progreso de la publicación mediante los controladores de
onSendEventsSuccessHandler
yonSendEventsErrorHandler
. - Los eventos que especifican una clave de partición se pueden asignar a una partición diferente de las que usan la misma clave con otros productores.
- En el improbable caso de que una partición deje de estar disponible temporalmente, el
EventHubBufferedProducerClient
puede tardar más tiempo en recuperarse que otros productores.
En escenarios en los que es importante que los eventos se publiquen inmediatamente con un resultado determinista, asegúrese de que las claves de partición se asignan a una partición coherente con otros publicadores o donde maximizar la disponibilidad es un requisito, se recomienda usar el EventHubProducerClient
.
Constructores
Event |
La clase |
Event |
La clase |
Event |
La clase |
Propiedades
event |
Nombre de la instancia del centro de eventos para la que se crea este cliente. |
fully |
Espacio de nombres completo de la instancia del centro de eventos para la que se crea este cliente. Esto es probable que sea similar a .servicebus.windows.net. |
identifier | Nombre que se usa para identificar este EventHubBufferedProducerClient. Si no se especifica o está vacío, se generará uno único aleatorio. |
Métodos
close(Buffered |
Cierra la conexión AMQP a la instancia del centro de eventos y devuelve una promesa que se resolverá cuando se complete la desconexión. Esto esperará a que los eventos en cola se vaciarán en el servicio antes de cerrar la conexión.
Para cerrar sin vaciar, establezca la opción |
enqueue |
Pone en cola un evento en el búfer que se va a publicar en el centro de eventos. Si no hay capacidad en el búfer cuando se invoca este método, esperará a que el espacio esté disponible y se asegurará de que el evento se haya puesto en cola. Cuando se devuelve esta llamada, el evento se ha aceptado en el búfer, pero es posible que aún no se haya publicado. La publicación tendrá lugar en un punto no determinista en el futuro a medida que se procesa el búfer. |
enqueue |
Pone en cola los eventos en el búfer que se publicarán en el centro de eventos. Si no hay capacidad en el búfer cuando se invoca este método, esperará a que el espacio esté disponible y se asegurará de que los eventos se han puesto en cola. Cuando se devuelve esta llamada, los eventos se han aceptado en el búfer, pero es posible que aún no se hayan publicado. La publicación tendrá lugar en un punto no determinista en el futuro a medida que se procesa el búfer. |
flush(Buffered |
Intenta publicar todos los eventos en el búfer inmediatamente.
Esto puede dar lugar a que se publiquen varios lotes, el resultado de cada uno de los cuales se notificará individualmente por los controladores de |
get |
Proporciona la información del entorno de ejecución del centro de eventos. |
get |
Proporciona el identificador de cada partición asociada al centro de eventos. |
get |
Proporciona información sobre el estado de la partición especificada. |
Detalles del constructor
EventHubBufferedProducerClient(string, EventHubBufferedProducerClientOptions)
La clase EventHubBufferedProducerClient
se usa para enviar eventos a un centro de eventos.
Use el options
parmeter para configurar la directiva de reintento o la configuración de proxy.
new EventHubBufferedProducerClient(connectionString: string, options: EventHubBufferedProducerClientOptions)
Parámetros
- connectionString
-
string
Cadena de conexión que se va a usar para conectarse a la instancia del centro de eventos. Se espera que las propiedades de clave compartida y la ruta de acceso del centro de eventos estén contenidas en esta cadena de conexión. Por ejemplo, 'Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/; SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key; EntityPath=my-event-hub-name'.
Conjunto de opciones que se aplicarán al configurar el cliente.
-
retryOptions
: configura la directiva de reintento para todas las operaciones del cliente. Por ejemplo,{ "maxRetries": 4 }
o{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura el canalización de la conexión AMQP a través de sockets web. -
userAgent
: una cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.
EventHubBufferedProducerClient(string, string, EventHubBufferedProducerClientOptions)
La clase EventHubBufferedProducerClient
se usa para enviar eventos a un centro de eventos.
Use el options
parmeter para configurar la directiva de reintento o la configuración de proxy.
new EventHubBufferedProducerClient(connectionString: string, eventHubName: string, options: EventHubBufferedProducerClientOptions)
Parámetros
- connectionString
-
string
Cadena de conexión que se va a usar para conectarse al espacio de nombres de Event Hubs. Se espera que las propiedades de clave compartida estén contenidas en esta cadena de conexión, pero no en la ruta de acceso del centro de eventos, por ejemplo, "Endpoint=sb://my-servicebus-namespace.servicebus.windows.net/; SharedAccessKeyName=my-SA-name; SharedAccessKey=my-SA-key;'.
- eventHubName
-
string
Nombre del centro de eventos específico al que se va a conectar el cliente.
Conjunto de opciones que se aplicarán al configurar el cliente.
-
retryOptions
: configura la directiva de reintento para todas las operaciones del cliente. Por ejemplo,{ "maxRetries": 4 }
o{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura el canalización de la conexión AMQP a través de sockets web. -
userAgent
: una cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.
EventHubBufferedProducerClient(string, string, TokenCredential | NamedKeyCredential | SASCredential, EventHubBufferedProducerClientOptions)
La clase EventHubBufferedProducerClient
se usa para enviar eventos a un centro de eventos.
Use el options
parmeter para configurar la directiva de reintento o la configuración de proxy.
new EventHubBufferedProducerClient(fullyQualifiedNamespace: string, eventHubName: string, credential: TokenCredential | NamedKeyCredential | SASCredential, options: EventHubBufferedProducerClientOptions)
Parámetros
- fullyQualifiedNamespace
-
string
Espacio de nombres completo que es probable que sea similar a .servicebus.windows.net
- eventHubName
-
string
Nombre del centro de eventos específico al que se va a conectar el cliente.
- credential
Objeto de credencial que usa el cliente para obtener el token para autenticar la conexión con el servicio Azure Event Hubs.
Consulte @azure/identity para crear credenciales que admitan la autenticación de AAD. Use el AzureNamedKeyCredential
de @azure/core-auth si desea pasar una SharedAccessKeyName
y SharedAccessKey
sin usar una cadena de conexión. Estos campos se asignan al campo name
y key
respectivamente en AzureNamedKeyCredential
.
Use el AzureSASCredential
de @azure/core-auth si desea pasar una SharedAccessSignature
sin usar una cadena de conexión. Este campo se asigna a signature
en AzureSASCredential
.
Conjunto de opciones que se aplicarán al configurar el cliente.
-
retryOptions
: configura la directiva de reintento para todas las operaciones del cliente. Por ejemplo,{ "maxRetries": 4 }
o{ "maxRetries": 4, "retryDelayInMs": 30000 }
. -
webSocketOptions
: configura el canalización de la conexión AMQP a través de sockets web. -
userAgent
: una cadena que se va a anexar a la cadena del agente de usuario integrada que se pasa al servicio.
Detalles de las propiedades
eventHubName
Nombre de la instancia del centro de eventos para la que se crea este cliente.
string eventHubName
Valor de propiedad
string
fullyQualifiedNamespace
Espacio de nombres completo de la instancia del centro de eventos para la que se crea este cliente. Esto es probable que sea similar a .servicebus.windows.net.
string fullyQualifiedNamespace
Valor de propiedad
string
identifier
Nombre que se usa para identificar este EventHubBufferedProducerClient. Si no se especifica o está vacío, se generará uno único aleatorio.
identifier: string
Valor de propiedad
string
Detalles del método
close(BufferedCloseOptions)
Cierra la conexión AMQP a la instancia del centro de eventos y devuelve una promesa que se resolverá cuando se complete la desconexión.
Esto esperará a que los eventos en cola se vaciarán en el servicio antes de cerrar la conexión.
Para cerrar sin vaciar, establezca la opción flush
en false
.
function close(options?: BufferedCloseOptions): Promise<void>
Parámetros
- options
- BufferedCloseOptions
Conjunto de opciones que se aplicarán a la llamada a la operación.
Devoluciones
Promise<void>
Prometer
enqueueEvent(EventData | AmqpAnnotatedMessage, EnqueueEventOptions)
Pone en cola un evento en el búfer que se va a publicar en el centro de eventos. Si no hay capacidad en el búfer cuando se invoca este método, esperará a que el espacio esté disponible y se asegurará de que el evento se haya puesto en cola.
Cuando se devuelve esta llamada, el evento se ha aceptado en el búfer, pero es posible que aún no se haya publicado. La publicación tendrá lugar en un punto no determinista en el futuro a medida que se procesa el búfer.
function enqueueEvent(event: EventData | AmqpAnnotatedMessage, options?: EnqueueEventOptions): Promise<number>
Parámetros
- event
- options
- EnqueueEventOptions
Conjunto de opciones que se pueden especificar para influir en la forma en que el evento se envía al centro de eventos asociado.
-
abortSignal
: señal que se usa para cancelar la operación enqueueEvent. -
partitionId
: la partición a la que se enviará este conjunto de eventos. Si se establece, no se puede establecerpartitionKey
. -
partitionKey
: valor hash para generar una asignación de partición. Si se establece, no se puede establecerpartitionId
.
Devoluciones
Promise<number>
Número total de eventos almacenados en búfer y en espera de publicación, en todas las particiones.
enqueueEvents(EventData[] | AmqpAnnotatedMessage[], EnqueueEventOptions)
Pone en cola los eventos en el búfer que se publicarán en el centro de eventos. Si no hay capacidad en el búfer cuando se invoca este método, esperará a que el espacio esté disponible y se asegurará de que los eventos se han puesto en cola.
Cuando se devuelve esta llamada, los eventos se han aceptado en el búfer, pero es posible que aún no se hayan publicado. La publicación tendrá lugar en un punto no determinista en el futuro a medida que se procesa el búfer.
function enqueueEvents(events: EventData[] | AmqpAnnotatedMessage[], options?: EnqueueEventOptions): Promise<number>
Parámetros
- events
Matriz de EventData o AmqpAnnotatedMessage
.
- options
- EnqueueEventOptions
Conjunto de opciones que se pueden especificar para influir en la forma en que los eventos se envían al centro de eventos asociado.
-
abortSignal
: señal que se usa para cancelar la operación enqueueEvents. -
partitionId
: la partición a la que se enviará este conjunto de eventos. Si se establece, no se puede establecerpartitionKey
. -
partitionKey
: valor hash para generar una asignación de partición. Si se establece, no se puede establecerpartitionId
.
Devoluciones
Promise<number>
Número total de eventos almacenados en búfer y en espera de publicación, en todas las particiones.
flush(BufferedFlushOptions)
Intenta publicar todos los eventos en el búfer inmediatamente.
Esto puede dar lugar a que se publiquen varios lotes, el resultado de cada uno de los cuales se notificará individualmente por los controladores de onSendEventsSuccessHandler
y onSendEventsErrorHandler
.
function flush(options?: BufferedFlushOptions): Promise<void>
Parámetros
- options
- BufferedFlushOptions
Conjunto de opciones que se aplicarán a la llamada a la operación.
Devoluciones
Promise<void>
getEventHubProperties(GetEventHubPropertiesOptions)
Proporciona la información del entorno de ejecución del centro de eventos.
function getEventHubProperties(options?: GetEventHubPropertiesOptions): Promise<EventHubProperties>
Parámetros
- options
- GetEventHubPropertiesOptions
Conjunto de opciones que se aplicarán a la llamada a la operación.
Devoluciones
Promise<EventHubProperties>
Promesa que se resuelve con información sobre la instancia del centro de eventos.
getPartitionIds(GetPartitionIdsOptions)
Proporciona el identificador de cada partición asociada al centro de eventos.
function getPartitionIds(options?: GetPartitionIdsOptions): Promise<string[]>
Parámetros
- options
- GetPartitionIdsOptions
Conjunto de opciones que se aplicarán a la llamada a la operación.
Devoluciones
Promise<string[]>
Promesa que se resuelve con una matriz de cadenas que representa el identificador de cada partición asociada al centro de eventos.
getPartitionProperties(string, GetPartitionPropertiesOptions)
Proporciona información sobre el estado de la partición especificada.
function getPartitionProperties(partitionId: string, options?: GetPartitionPropertiesOptions): Promise<PartitionProperties>
Parámetros
- partitionId
-
string
Identificador de la partición para la que se requiere información.
- options
- GetPartitionPropertiesOptions
Conjunto de opciones que se aplicarán a la llamada a la operación.
Devoluciones
Promise<PartitionProperties>
Promesa que se resuelve con información sobre el estado de la partición .