Elija entre Azure Event Grid, Event Hubs y Service Bus

Azure proporciona varios servicios para entregar eventos y mensajes a lo largo de una solución. Cada servicio tiene como destino diferentes escenarios, desde el enrutamiento de eventos reactivos hasta el streaming de alto rendimiento a la mensajería transaccional de nivel empresarial.

En este artículo se comparan los siguientes servicios:

Elección de un servicio candidato

Esta sección le ayuda a seleccionar los servicios más adecuados a sus necesidades.

Use la tabla siguiente para restringir rápidamente qué servicio se ajusta a su escenario:

Criterio Cuadrícula de Eventos Event Hubs Bus de Servicio
Propósito principal Enrutamiento de eventos reactivos Streaming e ingesta de macrodatos Mensajería transaccional de empresa
Modelo de datos Eventos (notificaciones discretas) Flujos de eventos (serie ordenada por tiempo) Mensajes (cargas de alto valor)
Garantía de entrega Al menos una vez Al menos una vez Al menos una vez (ordenado opcionalmente, exactamente una vez con sesiones)
Cuándo se deben usar Reacción a los cambios de estado, arquitecturas sin servidor Telemetría, streaming de datos distribuidos, análisis en tiempo real Procesamiento de pedidos, transacciones financieras, flujos de trabajo

El resultado de esta sección es un punto de partida para tener en cuenta. Use las secciones siguientes para realizar una evaluación detallada de los servicios.

Eventos frente a mensajes en los servicios de mensajería de Azure

Hay una distinción importante entre Azure servicios que entregan un evento y servicios que entregan un mensaje.

Evento: notificación ligera de un cambio de estado o condición. El publicador no tiene ninguna expectativa sobre cómo se controla el evento. Los eventos pueden ser discretos (notificar un cambio de estado que sea accionable) o parte de una serie ordenada por tiempo (notificar una condición que se pueda analizar). Los eventos discretos funcionan muy bien con soluciones sin servidor que necesitan escalarse.

Mensaje: Datos sin procesar generados por un servicio que se van a consumir o almacenar en otro lugar. El mensaje contiene los datos que desencadenó la canalización del mensaje. Existe un contrato entre el publicador y el consumidor. Por ejemplo, el publicador envía un mensaje con datos sin procesar y espera que el consumidor cree un archivo a partir de esos datos y envíe una respuesta cuando finalice el trabajo.

Escalabilidad y rendimiento

En la tabla siguiente se compara cómo Azure Event Grid, Azure Event Hubs y Azure Service Bus controlan la escalabilidad y el rendimiento.

Criterio Cuadrícula de Eventos Event Hubs Bus de Servicio
Rendimiento Escalable dinámicamente, sin servidor Millones de eventos por segundo Entrega asincrónica confiable
Modelo de latencia Entrega de eventos casi en tiempo real Streaming de baja latencia Con intermediario y con sondeo largo opcional
Modelo de escalado Automático (sin servidor) Unidades de rendimiento / unidades de procesamiento Unidades de mensajería (Premium)

Características de mensajería

En la tabla siguiente se comparan las características de mensajería de Azure Event Grid, Azure Event Hubs y Azure Service Bus.

Criterio Cuadrícula de Eventos Event Hubs Bus de Servicio
Protocolo MQTT, HTTP AMQP, Kafka, HTTP AMQP, HTTP
Pub/Sub Sí (publicación-suscripción) Sí (grupos de consumidores) Sí (temas y suscripciones)
Ordenación Sin garantía Por partición FIFO (sesiones)
Transacciones No No
Detección de duplicados No No
Mensajes fallidos No
Procesamiento por lotes Sí (lotes de eventos) Sí (sesiones)
Captura y reproducción No Sí (Captura de Event Hubs) No

Integración e implementación

En la tabla siguiente se comparan las opciones de integración e implementación de Azure Event Grid, Azure Event Hubs y Azure Service Bus.

Criterio Cuadrícula de Eventos Event Hubs Bus de Servicio
integración del servicio Azure Integración profunda con servicios de Azure y servicios de terceros Infraestructuras de procesamiento de flujos y servicios de análisis Aplicaciones empresariales, nube híbrida, conectividad local
Ediciones Azure Event Grid (PaaS), Event Grid en Kubernetes con Azure Arc Estándar, Premium, Dedicado Básico, Estándar, Premium

Uso de Event Grid, Event Hubs y Service Bus juntos

En algunos casos, puede utilizar servicios en paralelo para cumplir con distintos roles. Por ejemplo, un sitio de comercio electrónico puede usar Service Bus para procesar pedidos, Event Hubs para capturar la telemetría del sitio y Event Grid para responder a eventos como el envío de un artículo.

En otros casos, puede vincularlos juntos para formar una tubería de eventos y datos. Use Event Grid para responder a los eventos en los otros servicios. Para obtener un ejemplo de uso de Event Grid con Event Hubs para migrar datos a Azure Synapse Analytics, consulte Transmisión de macrodatos a Azure Synapse Analytics. En la siguiente imagen se muestra el flujo de trabajo para el streaming de datos.

Diagrama que muestra cómo Se pueden conectar Event Hubs, Service Bus y Event Grid.