Escolha entre os três serviços de mensagens do Azure – Grade de Eventos, Hubs de Eventos e Barramento de Serviço

O Azure oferece três serviços que ajudam na entrega de eventos ou mensagens ao longo de uma solução. Esses serviços são: Grade de Eventos do Azure, Hubs de Eventos do Azure e Barramento de Serviço do Azure.

Embora tenham algumas semelhanças, cada serviço é criado para cenários específicos. Este artigo descreve as diferenças entre esses serviços e ajuda a entender qual deles escolher para seu aplicativo. Em muitos casos, os serviços de mensagens são complementares e podem ser usados juntos.

Eventos versus mensagens

Há uma distinção importante entre serviços que entregam um evento e serviços que entregam uma mensagem.

Evento

Um evento é uma notificação leve de uma condição ou de uma alteração de estado. O editor do evento não tem expectativa sobre como o evento é manipulado. O consumidor do evento decide o que fazer com a notificação. Os eventos podem ser unidades discretas ou parte de uma série.

Os eventos discretos relatam as alterações de estado e são acionáveis. Para dar continuidade, o consumidor apenas precisa saber o que ocorreu. Os dados do evento têm informações sobre o que aconteceu, mas não têm os dados que dispararam o evento. Por exemplo, um evento notifica os consumidores que um arquivo foi criado. Ele pode ter informações gerais sobre o arquivo, mas não contém o próprio arquivo. Eventos discretos são ideais para soluções sem servidor que precisam ser dimensionadas.

Vários eventos relatam uma condição e são analisáveis. Os eventos são ordenados por tempo e inter-relacionados. O consumidor precisa da série sequenciada de eventos para analisar o que ocorreu.

Mensagem

Uma mensagem é composta de dados brutos produzidos por um serviço para serem consumidos ou armazenados em outro lugar. A mensagem contém os dados que dispararam o pipeline de mensagem. O editor da mensagem tem uma expectativa sobre como o consumidor manipula a mensagem. Há um contrato entre os dois lados. Por exemplo, o editor envia uma mensagem com os dados brutos e espera que o consumidor crie um arquivo a partir desses dados e envie uma resposta quando o trabalho for concluído.

Agora vamos dar uma olhada rápida no que são a Grade de Eventos do Azure, os Hubs de Eventos do Azure e o Barramento de Serviço do Azure.

Grade de Eventos do Azure

A Grade de Eventos do Azure é um serviço de distribuição de mensagens de publicação/assinatura altamente escalonável e totalmente gerenciado que oferece padrões flexíveis de consumo de mensagens por meio dos protocolos MQTT (Message Queueing Telemetry Transport) e HTTP. Com a Grade de Eventos do Azure, você pode criar pipelines de dados com os dados do dispositivo, integrar aplicativos e criar arquiteturas sem servidor controladas por eventos.

O serviço fornece um backbone de geração de eventos que permite a programação reativa e controlada por eventos. Ela usa o modelo de publicação/assinatura. Editores emitem eventos, mas não têm nenhuma expectativa sobre quais eventos são manipulados. Os assinantes decidem quais eventos desejam manipular.

A Grade de Eventos está totalmente integrada a outros serviços do Azure e pode ser integrada a serviços de terceiros. Ele simplifica o consumo de eventos e reduz os custos, eliminando a necessidade de sondagem de constante. A Grade de Eventos faz o roteamento de eventos eficiente e confiável e encaminha eventos de recursos do Azure e não Azure. Ela distribui os eventos para os pontos de extremidade do assinante registrado. A mensagem de evento tem as informações necessárias para reagir a alterações em serviços e aplicativos. A Grade de Eventos não é um pipeline de dados e não entrega o objeto real atualizado.

Ele tem as seguintes características:

  • Escalonável dinamicamente
  • Baixo custo
  • Sem servidor
  • Pelo menos uma entrega de um evento

A Grade de Eventos é oferecida em duas edições: Grade de Eventos do Azure, um serviço de PaaS totalmente gerenciado no Azure, e Grade de Eventos no Kubernetes com o Azure Arc, que permite o uso da Grade de Eventos no cluster do Kubernetes onde quer que seja implantado, localmente ou na nuvem. Para obter mais informações, consulte Visão geral da Grade de Eventos do Azure e Grade de Eventos no Kubernetes com a visão geral do Azure Arc.

Hubs de eventos do Azure

Os Hubs de Eventos do Azure são uma plataforma de streaming de Big Data e um serviço de ingestão de eventos. Ele pode receber e processar milhões de eventos por segundo. Ele facilita a captura, a retenção e a reprodução de telemetria e dados de fluxo de eventos. Os dados podem vir de várias fontes simultâneas. O Hubs de Eventos permite que os dados de telemetria e de eventos sejam disponibilizados para várias infraestruturas de processamento de fluxo e serviços de análise. Está disponível como fluxos de dados ou lotes de eventos em pacote. Esse serviço fornece uma solução única que permite a recuperação rápida de dados para processamento em tempo real e reprodução repetida de dados brutos armazenados. Ele pode capturar os dados de streaming em um arquivo para processamento e análise.

Ele tem as seguintes características:

  • Baixa latência
  • Pode receber e processar milhões de eventos por segundo
  • Pelo menos uma entrega de um evento

Para obter mais informações, confira Visão Geral dos Hubs de Eventos.

Barramento de Serviço do Azure

O Barramento de Serviço é um agente de mensagens empresarial totalmente gerenciado com filas de mensagens e tópicos de publicação/assinatura. O serviço destina-se a aplicativos corporativos que exigem transações, ordenação, detecção de duplicidades e consistência instantânea. O Barramento de Serviço permite que os aplicativos nativos de nuvem forneçam gerenciamento de transição de estado confiável para os processos empresariais. Ao manipular mensagens de alto valor que não podem ser perdidas ou duplicadas, use o Barramento de Serviço do Azure. Esse serviço também facilita a comunicação altamente segura em soluções de nuvem híbrida e pode se conectar a sistemas locais existentes para soluções de nuvem.

O Barramento de Serviço é um sistema de mensagens agenciado. Ele armazena mensagens de maneira confiável em um "agente" (por exemplo, uma fila) até que a parte consumidora esteja pronta para recebê-las. Ele tem as seguintes características:

  • Entrega confiável de mensagens assíncronas (sistema de mensagens empresarial como um serviço) que requer sondagem. Se você estiver usando o Barramento de Serviço e precisar receber mensagens sem ter que sondar a fila, poderá fazer isso usando uma operação de recebimento de sondagem longa usando os protocolos baseados em TCP compatíveis com o Barramento de Serviço.
  • Recursos de sistema de mensagens avançados como PEPS (primeiro a entrar, primeiro a sair), envio em lote/sessões, transações, colocação de mensagens mortas em fila, controle temporal, roteamento e filtragem e detecção de duplicatas
  • Pelo menos uma entrega de uma mensagem
  • Entrega ordenada opcional de mensagens

Para obter mais informações, consulte Visão geral do Barramento de Serviço.

Comparação de serviços

A tabela a seguir compara estes três serviços: Grade de Eventos, Hubs de Eventos e Barramento de Serviço.

Serviço Finalidade Type Quando usar
Grade de Eventos Programação reativa Distribuição de eventos (eventos discretos) Reagir a alterações de status
Hubs de Eventos Pipeline de Big Data Streaming de evento (série) Telemetria e streaming de dados distribuídos
Barramento de Serviço Mensagens corporativas de alto valor Mensagem Processamento de pedidos e transações financeiras

Usar os serviços juntos

Em alguns casos, você usa os serviços lado a lado para cumprir funções distintas. Por exemplo, um site de comércio eletrônico pode usar o Barramento de Serviço para processar o pedido, o Hubs de Eventos para capturar a telemetria de site e a Grade de Eventos para responder a eventos como o envio de um item.

Em outros casos, você os vincula juntos para formar um pipeline de dados e eventos. Você usa a Grade de Eventos para responder a eventos nos outros serviços. Para obter um exemplo de como usar a Grade de Eventos com os Hubs de Eventos para migrar dados para o Azure Synapse Analytics, consulte Transmitir Big Data para o Azure Synapse Analytics. A imagem a seguir mostra o fluxo de trabalho para transmitir os dados.

Diagrama mostrando como Hubs de Eventos, Barramento de Serviço e Grade de Eventos podem ser conectados juntos.

Veja os artigos a seguir: