Elija entre los servicios de mensajería de Azure: Event Grid, Event Hubs y Service BusChoose between Azure messaging services - Event Grid, Event Hubs, and Service Bus

Azure ofrece tres servicios que le ayudan en la entrega de mensajes de evento en una solución.Azure offers three services that assist with delivering event messages throughout a solution. Estos servicios son los siguientes:These services are:

Aunque son similares, cada servicio se designa para escenarios determinados.Although they have some similarities, each service is designed for particular scenarios. Este artículo describe las diferencias entre estos servicios y le ayuda a entender cuál elegir para su aplicación.This article describes the differences between these services, and helps you understand which one to choose for your application. En muchos casos, los servicios de mensajería son complementarios y se pueden usar conjuntamente.In many cases, the messaging services are complementary and can be used together.

Servicios de eventos frente a los de mensajeríaEvent vs. message services

Hay una diferencia importante entre los servicios que entregan un evento y los que entregan un mensaje.There's an important distinction to note between services that deliver an event and services that deliver a message.

EventoEvent

Un evento es una notificación ligera de una condición o un cambio de estado.An event is a lightweight notification of a condition or a state change. El publicador del evento no tiene ninguna expectativa sobre cómo se trata el evento.The publisher of the event has no expectation about how the event is handled. El consumidor del evento decide qué hacer con la notificación.The consumer of the event decides what to do with the notification. Los eventos pueden ser unidades discretas o parte de una serie.Events can be discrete units or part of a series.

Los eventos discretos notifican un cambio de estado y se puede actuar sobre ellos.Discrete events report state change and are actionable. Para realizar el paso siguiente, el consumidor solo necesita saber que algo ha pasado.To take the next step, the consumer only needs to know that something happened. Los datos de evento tienen información acerca de lo que ha ocurrido, pero no tienen los datos que desencadenaron el evento.The event data has information about what happened but doesn't have the data that triggered the event. Por ejemplo, un evento notifica a los consumidores que se ha creado un archivo.For example, an event notifies consumers that a file was created. Puede tener información general acerca del archivo, pero no contiene el propio archivo.It may have general information about the file, but it doesn't have the file itself. Los eventos discretos funcionan muy bien con soluciones sin servidor que necesitan escalarse.Discrete events are ideal for serverless solutions that need to scale.

Los eventos de serie notifican una condición y son analizables.Series events report a condition and are analyzable. Los eventos están ordenados en el tiempo e interrelacionados.The events are time-ordered and interrelated. El consumidor necesita la serie de eventos ordenada para analizar lo que ha pasado.The consumer needs the sequenced series of events to analyze what happened.

MessageMessage

Un mensaje son datos sin procesar producidos por un servicio que se consumen o almacenan en otro lugar.A message is raw data produced by a service to be consumed or stored elsewhere. El mensaje contiene los datos que desencadenó la canalización del mensaje.The message contains the data that triggered the message pipeline. El publicador del mensaje tiene una expectativa sobre la forma en que el consumidor trata el mensaje.The publisher of the message has an expectation about how the consumer handles the message. Existe un contrato entre ambas partes.A contract exists between the two sides. Por ejemplo, el publicador envía un mensaje con los datos sin procesar, espera que el consumidor cree un archivo a partir de esos datos y envía una respuesta cuando el trabajo finaliza.For example, the publisher sends a message with the raw data, and expects the consumer to create a file from that data and send a response when the work is done.

Comparación de serviciosComparison of services

ServicioService PropósitoPurpose TipoType Cuándo se usaWhen to use
Event GridEvent Grid Programación reactivaReactive programming Distribución de eventos (discretos)Event distribution (discrete) Reacción ante los cambios de estadoReact to status changes
Event HubsEvent Hubs Canalización de macrodatosBig data pipeline Streaming de eventos (serie)Event streaming (series) Streaming de datos distribuidos y telemetríaTelemetry and distributed data streaming
Azure Service BusService Bus Mensajería empresarial de gran valorHigh-value enterprise messaging MessageMessage Procesamiento de pedidos y transacciones financierasOrder processing and financial transactions

Event GridEvent Grid

Event Grid es un panel posterior de eventos que habilita la programación orientada a eventos y reactiva.Event Grid is an eventing backplane that enables event-driven, reactive programming. Utiliza un modelo de publicación-suscripción.It uses a publish-subscribe model. Los publicadores emiten eventos, pero no tienen expectativas sobre qué eventos se administran.Publishers emit events, but have no expectation about which events are handled. Los suscriptores deciden qué eventos quieren administrar.Subscribers decide which events they want to handle.

Event Grid está totalmente integrado con los servicios de Azure y puede integrarse con servicios de terceros.Event Grid is deeply integrated with Azure services and can be integrated with third-party services. Simplifica el consumo de eventos y reduce los costos mediante la eliminación de la necesidad de un sondeo constante.It simplifies event consumption and lowers costs by eliminating the need for constant polling. Event Grid enruta de forma eficiente y fiable eventos desde recursos de Azure y que no son de Azure.Event Grid efficiently and reliably routes events from Azure and non-Azure resources. Distribuye los eventos a los puntos de conexión del suscriptor registrado.It distributes the events to registered subscriber endpoints. El mensaje de evento tiene la información que necesita para reaccionar a los cambios en los servicios y aplicaciones.The event message has the information you need to react to changes in services and applications. Event Grid no es una canalización de datos y no entrega el objeto real que se ha actualizado.Event Grid isn't a data pipeline, and doesn't deliver the actual object that was updated.

Event Grid admite colas de mensajes fallidos para los eventos que no se pueden entregar en un punto de conexión.Event Grid supports dead-lettering for events that aren't delivered to an endpoint.

Tiene las siguientes características:It has the following characteristics:

  • dinámicamente escalabledynamically scalable
  • bajo costolow cost
  • sin servidorserverless
  • al menos una entregaat least once delivery

Event HubsEvent Hubs

Azure Event Hubs es una canalización de macrodatos.Azure Event Hubs is a big data pipeline. Facilita la captura, la retención y la reproducción de los datos de streaming de eventos y telemetría.It facilitates the capture, retention, and replay of telemetry and event stream data. Los datos pueden proceder de distintos orígenes simultáneos.The data can come from many concurrent sources. Event Hubs permite que los datos de telemetría y eventos estén disponibles para una variedad de servicios de análisis e infraestructuras de procesamiento de streaming.Event Hubs allows telemetry and event data to be made available to a variety of stream-processing infrastructures and analytics services. Está disponible como transmisiones de datos o lotes de eventos agrupados.It is available either as data streams or bundled event batches. Este servicio proporciona una solución única que permite una recuperación de datos rápida para el procesamiento en tiempo real, así como una reproducción repetida de los datos sin procesar almacenados.This service provides a single solution that enables rapid data retrieval for real-time processing as well as repeated replay of stored raw data. Puede capturar los datos de streaming en un archivo para su procesamiento y análisis.It can capture the streaming data into a file for processing and analysis.

Tiene las siguientes características:It has the following characteristics:

  • baja latencialow latency
  • capacidad de recibir y procesar millones de eventos por segundocapable of receiving and processing millions of events per second
  • al menos una entregaat least once delivery

Azure Service BusService Bus

Service Bus se ha diseñado para aplicaciones empresariales tradicionales.Service Bus is intended for traditional enterprise applications. Estas aplicaciones empresariales requieren transacciones, ordenación, detección de duplicados y coherencia inmediata.These enterprise applications require transactions, ordering, duplicate detection, and instantaneous consistency. Service Bus permite que las aplicaciones nativas de la nube proporcionen una administración de transición de estado de confianza para los procesos empresariales.Service Bus enables cloud-native applications to provide reliable state transition management for business processes. Cuando se administran mensajes de gran valor que no se pueden perder o duplicarse, use Azure Service Bus.When handling high-value messages that cannot be lost or duplicated, use Azure Service Bus. Service Bus también facilita la comunicación de alta seguridad en soluciones híbridas en la nube y pueden conectar sistema locales existentes a soluciones en la nube.Service Bus also facilitates highly secure communication across hybrid cloud solutions and can connect existing on-premises systems to cloud solutions.

Service Bus es un sistema de mensajería asincrónica.Service Bus is a brokered messaging system. Almacena los mensajes en un "agente" (por ejemplo, una cola) hasta que la parte consumidora esté preparada para recibirlos.It stores messages in a "broker" (for example, a queue) until the consuming party is ready to receive the messages.

Tiene las siguientes características:It has the following characteristics:

  • entrega de mensajes asincrónica de confianza (mensajería empresarial como servicio) que requiere el sondeo.reliable asynchronous message delivery (enterprise messaging as a service) that requires polling
  • características de mensajería avanzada, como FIFO, procesamiento por lotes o sesiones, transacciones, colas de mensajes fallidos, control temporal, enrutamiento y filtrado, y detección de duplicadosadvanced messaging features like FIFO, batching/sessions, transactions, dead-lettering, temporal control, routing and filtering, and duplicate detection
  • al menos una entregaat least once delivery
  • entrega en orden opcionaloptional in-order delivery

Uso conjunto de serviciosUse the services together

En algunos casos, puede utilizar servicios en paralelo para cumplir con distintos roles.In some cases, you use the services side by side to fulfill distinct roles. Por ejemplo, un sitio de comercio electrónico puede utilizar Service Bus para procesar el pedido, Event Hubs para capturar la telemetría del sitio y Event Grid para responder a eventos, como un artículo enviado.For example, an e-commerce site can use Service Bus to process the order, Event Hubs to capture site telemetry, and Event Grid to respond to events like an item was shipped.

En otros casos, puede vincular estas soluciones para formar una canalización de datos y eventos.In other cases, you link them together to form an event and data pipeline. Use Event Grid para responder a los eventos en los demás servicios.You use Event Grid to respond to events in the other services. Para obtener un ejemplo sobre el uso de Event Grid con Event Hubs para migrar datos a un almacén de datos, vea Transmisión de macrodatos a un almacén de datos.For an example of using Event Grid with Event Hubs to migrate data to a data warehouse, see Stream big data into a data warehouse. En la siguiente imagen se muestra el flujo de trabajo para el streaming de datos.The following image shows the workflow for streaming the data.

Información general sobre streaming de datos

Pasos siguientesNext steps

Vea los artículos siguientes:See the following articles: