Perspectiva de Azure Well-Architected Framework en Azure Event Hubs

Azure Event Hubs es un servicio escalable de procesamiento de eventos que recopila y procesa grandes volúmenes de eventos y datos, con una baja latencia y una alta fiabilidad. Puede recibir y procesar millones de eventos por segundo. Los datos enviados a un centro de eventos se pueden transformar y almacenar con cualquier proveedor de análisis en tiempo real o adaptadores de procesamiento por lotes y almacenamiento.

Para más información sobre el uso de Event Hubs, consulte la documentación de Azure Event Hubs para aprender a usar Event Hubs para ingerir millones de eventos por segundo desde dispositivos y aplicaciones conectados.

Para comprender las formas de usar Event Hubs le ayuda a lograr la excelencia operativa y la confiabilidad de la carga de trabajo, consulte los artículos siguientes:

Las secciones siguientes son específicas de Azure Event Hubs desde una perspectiva de Marco bien diseñado:

  • Consideraciones de diseño
  • Lista de comprobación de la configuración
  • Opciones de configuración recomendada
  • Artefactos de origen

Consideraciones de diseño

Azure Event Hubs ofrece un contrato de nivel de servicio de tiempo de actividad. Para obtener más información, consulte Acuerdo de Nivel de Servicio para Event Hubs.

Lista de comprobación

¿Ha configurado Azure Event Hubs teniendo en cuenta la excelencia operativa?

  • Cree directivas SendOnly y ListenOnly para el publicador y el consumidor de eventos, respectivamente.
  • Al usar el SDK para enviar eventos a Event Hubs, asegúrese de que las excepciones producidas por la directiva de reintentos (EventHubsException o OperationCancelledException) se detectan correctamente.
  • En escenarios de alto rendimiento, use eventos por lotes.
  • Cada consumidor puede leer eventos de una a la máxima partición admitida por la SKU de Event Hubs .
  • Al desarrollar nuevas aplicaciones, use EventProcessorClient (.NET y Java) o EventHubConsumerClient (Python y JavaScript) como SDK de cliente.
  • Como parte de la estrategia de disponibilidad y recuperación ante desastres de toda la solución, considere la posibilidad de habilitar la opción de recuperación ante desastres geográfica de Event Hubs.
  • Cuando una solución tiene un gran número de publicadores de eventos independientes, considere la posibilidad de usar publicadores de eventos para un control de acceso más preciso.
  • No publique eventos en una partición específica.
  • Cuando publique eventos con frecuencia, use el protocolo AMQP cuando sea posible.
  • El número de particiones refleja el grado de paralelismo de bajada que puede lograr.
  • Asegúrese de que cada aplicación de consumo usa un grupo de consumidores independiente y que solo hay un receptor activo por grupo de consumidores.
  • Al usar la característica Capture, tenga en cuenta cuidadosamente la configuración del tamaño del archivo y el período de tiempo, especialmente con volúmenes de eventos bajos.

Recomendaciones para la configuración

Tenga en cuenta las siguientes recomendaciones para optimizar la confiabilidad al configurar Azure Event Hubs:

Recomendación Descripción
Al usar el SDK para enviar eventos a Event Hubs, asegúrese de que las excepciones producidas por la directiva de reintentos (EventHubsException o OperationCancelledException) se detectan correctamente. Al usar HTTPS, asegúrese de que se implementa un patrón de reintento adecuado.
En escenarios de alto rendimiento, use eventos por lotes. El servicio entregará una matriz json con varios eventos a los suscriptores, en lugar de una matriz con un evento. La aplicación de consumo debe procesar estas matrices.
Cada consumidor puede leer eventos de una a la máxima partición admitida por la SKU de Event Hubs. Para lograr la escala máxima en el lado de la aplicación de consumo, todos los consumidores deben leer desde una sola partición.
Al desarrollar nuevas aplicaciones, use EventProcessorClient (.NET y Java) o EventHubConsumerClient (Python y JavaScript) como SDK de cliente. EventProcessorHost está en desuso.
Como parte de la estrategia de disponibilidad y recuperación ante desastres de toda la solución, considere la posibilidad de habilitar la opción de recuperación ante desastres geográfica de Event Hubs. Esta opción permite la creación de un espacio de nombres secundario en una región diferente. Solo el espacio de nombres activo recibe mensajes en cualquier momento. Los mensajes y eventos no se replican en la región secundaria. El objetivo de tiempo de recuperación para la conmutación por error regional es de hasta 30 minutos. Confirme que este objetivo de tiempo de recuperación se alinea con los requisitos del cliente y se ajusta a la estrategia de disponibilidad más amplia. Si se requiere un objetivo de tiempo de recuperación superior, considere la posibilidad de implementar un patrón de conmutación por error del lado cliente.
Cuando una solución tiene un gran número de publicadores de eventos independientes, considere la posibilidad de usar publicadores de eventos para un control de acceso más preciso. Los publicadores de eventos establecen automáticamente la clave de partición en el nombre del publicador, por lo que esta característica solo se debe usar si los eventos se originan de todos los publicadores uniformemente.
No publique eventos en una partición específica. Si la ordenación de eventos es esencial, implemente la ordenación descendente o use un servicio de mensajería diferente en su lugar.
Cuando publique eventos con frecuencia, use el protocolo AMQP cuando sea posible. AMQP tiene un mayor costo de red al inicializar la sesión, sin embargo, HTTPS requiere una sobrecarga de TLS para cada solicitud. AMQP tiene un mayor rendimiento para los publicadores frecuentes.
El número de particiones refleja el grado de paralelismo de bajada que puede lograr. Para obtener el rendimiento máximo, use el número máximo de particiones admitidas por la SKU al crear el centro de eventos. Aumentar el número de particiones permite escalar entidades de procesamiento simultáneas para que coincidan con las particiones, lo que garantiza una disponibilidad óptima de envío y recepción.
Al usar la característica Capture, tenga en cuenta cuidadosamente la configuración del tamaño del archivo y el período de tiempo, especialmente con volúmenes de eventos bajos. Data Lake Gen2 cobrará por un tamaño mínimo de transacción. Si establece un período de tiempo tan bajo que el archivo no llegue a alcanzar el tamaño mínimo, incurrirá en costos adicionales.

Artefactos de origen

Para buscar espacios de nombres de Event Hubs con SKU básica, use la consulta siguiente:

Resources 
| where type == 'microsoft.eventhub/namespaces'
| where sku.name == 'Basic'
| project resourceGroup, name, sku.name

Paso siguiente