Message brokers

menu icon

Message brokers

Os message brokers são uma tecnologia de comunicação entre aplicativos que ajuda a criar um mecanismo de integração comum para suportar arquiteturas de cloud híbrida, sem servidor e com base em microsserviços.

O que é um message broker?

Um message broker é um software que possibilita que aplicativos, sistemas e serviços se comuniquem e troquem informações. O message broker faz isso convertendo mensagens entre protocolos de mensagens formais. Isso permite que serviços interdependentes “conversem” uns com os outros diretamente, mesmo que tenham sido criados em linguagens diferentes ou tenham sido implementados em plataformas diferentes.

Os message brokers são módulos de software no middleware de sistema de mensagens ou em soluções MOM (middleware orientado por mensagens). Esse tipo de middleware fornece aos desenvolvedores um meio padronizado de lidar com o fluxo de dados entre os componentes de um aplicativo para que eles possam se concentrar na lógica central. Ele pode atuar como uma camada de comunicações distribuída que permite que aplicativos de diversas plataformas se comuniquem internamente.

Os message brokers podem validar, armazenar, rotear e entregar mensagens aos destinos apropriados. Eles atuam como intermediários entre outros aplicativos, permitindo que os remetentes emitam mensagens sem saber onde estão os destinatários, se eles estão ativos ou não ou quantos deles existem. Isso facilita o desacoplamento de processos e serviços dentro de sistemas.

Para fornecer armazenamento confiável de mensagens e entrega garantida, os message brokers geralmente contam com uma subestrutura ou componente chamado fila de mensagens, que armazena e ordena as mensagens até que os aplicativos de consumo possam processá-las. Em uma fila de mensagens, as mensagens são armazenadas na ordem exata em que foram transmitidas e permanecem na fila até que o recebimento seja confirmado.

Sistema de mensagens assíncronas (15:11) refere-se ao tipo de comunicação entre aplicativos que os message brokers tornam possível. Ele evita a perda de dados valiosos e permite que os sistemas continuem funcionando mesmo quando há problemas de conectividade intermitente ou latência comuns em redes públicas. O sistema de mensagens assíncronas garante que as mensagens serão entregues uma vez (apenas uma) e na ordem correta em relação a outras mensagens.

Os message brokers podem compreender os gerenciadores de filas para lidar com as interações entre diversas filas de mensagens, bem como os serviços que fornecem roteamento de dados, conversão de mensagens, persistência e funcionalidades de gerenciamento de estado do cliente.

Modelos de message broker

Os message brokers oferecem dois padrões básicos de distribuição ou estilos de sistema de mensagens:

  • Sistema de mensagens ponto a ponto: esse é o padrão de distribuição utilizado em filas de mensagens com um relacionamento de um a um entre o remetente e o destinatário da mensagem. Cada mensagem na fila é enviada somente a um destinatário e é consumida somente uma vez. O sistema de mensagens ponto a ponto é chamado quando uma mensagem deve receber uma ação somente uma vez. Exemplos de casos de uso adequados para esse estilo de sistema de mensagens incluem folha de pagamento e processamento de transações financeiras. Nesses sistemas, tanto os remetentes quanto os destinatários precisam de uma garantia de que cada pagamento será enviado uma vez e uma única vez.
  • Sistemas de mensagens de publicação/assinatura: nesse padrão de distribuição de mensagens, também chamado de "pub/sub", o produtor publica cada mensagem em um tópico e diversos consumidores de mensagens assinam os tópicos para receber as mensagens. Todas as mensagens publicadas em um tópico são distribuídas para todos os aplicativos inscritos. Trata-se de um método de distribuição de estilo de transmissão, no qual há um relacionamento de um para muitos entre o publicador da mensagem e os consumidores. Se, por exemplo, uma companhia aérea fosse disseminar atualizações sobre os horários de pouso ou o status de atraso de seus voos, diversas partes poderiam fazer uso das informações: tripulações de solo realizando manutenção e reabastecimento de aeronaves, responsáveis por bagagens, comissários de bordo e pilotos se preparando para a próxima viagem do avião e operadores de monitores visuais notificando o público. Um estilo de sistema de mensagens pub/sub seria apropriado para uso nesse cenário.

Message brokers em arquiteturas em cloud

Aplicativos nativos em cloud são desenvolvidos para aproveitar os benefícios inerentes da computação em cloud, incluindo a flexibilidade, a escalabilidade e a implementação rápida. Esses aplicativos são feitos de componentes pequenos, discretos e reutilizáveis chamados microsserviços. Cada microsserviço é implementado e pode ser executado independentemente dos demais. Isso significa que qualquer um deles pode ser atualizado, ajustado em escala ou reiniciado sem afetar outros serviços no sistema. Muitas vezes empacotados em contêineres, os microsserviços funcionam juntos para compreender todo um aplicativo, embora cada um tenha a própria solução, incluindo um banco de dados e um modelo de dados que podem ser diferentes dos demais.

Os microsserviços devem ter um meio de comunicação entre si para operar em conjunto. Os message brokers são um mecanismo usado por eles para criar esse backbone de comunicações compartilhadas.

Os message brokers são frequentemente usados para gerenciar comunicações entre sistemas on-premises e componentes em cloud em ambientes de cloud híbrida. O uso de um message broker oferece maior controle sobre as comunicações entre serviços, garantindo que os dados sejam enviados com segurança, confiabilidade e eficiência entre os componentes de um aplicativo. Os message brokers podem desempenhar uma função semelhante na integração de ambientes multicloud, permitindo a comunicação entre cargas de trabalho e tempos de execução que residem em plataformas diferentes. Eles também são adequados para uso na computação sem servidor, na qual os serviços individuais hospedados em cloud são executados sob demanda de acordo com a solicitação.

Message brokers vs. APIs

As APIs de REST são comumente usadas para comunicações entre microsserviços. O termo Representational State Transfer (REST) define um conjunto de princípios e restrições que os desenvolvedores podem seguir ao desenvolver os serviços da web. Qualquer serviço que aderir será capaz de se comunicar por meio de um conjunto de solicitações e operadores sem estado compartilhados e uniformes. A Application Programming Interface (API) denota o código subjacente que, quando em conformidade com as regras de REST, permite que os serviços se comuniquem.

As APIs de REST usam o Hypertext Transfer Protocol (HTTP) para se comunicar. Como o HTTP é o protocolo de transporte padrão da Internet pública, as APIs de REST são amplamente conhecidas, frequentemente usadas e amplamente interoperáveis. No entanto, HTTP é um protocolo de solicitação/resposta, por isso, é melhor usado em situações que precisam de solicitação ou resposta síncrona. Isso significa que os serviços que fazem solicitações via APIs de REST devem ser projetados para esperar uma resposta imediata. Se o cliente que está recebendo a resposta estiver inativo, o serviço de envio será bloqueado enquanto aguarda a resposta. A lógica de tratamento de erro e failover deve ser integrada em ambos os serviços.

Os message brokers permitem comunicações assíncronas entre os serviços para que o serviço de envio não precise esperar pela resposta do serviço de recebimento. Isso melhora a tolerância a falhas e a resiliência nos sistemas nos quais eles estão empregados. Além disso, o uso de message brokers torna mais fácil a ajuste de escala dos sistemas, uma vez que um padrão de sistema de mensagens pub/sub pode prontamente oferecer suporte à mudança de números de serviços. Os message brokers também rastreiam os estados dos consumidores.

Message brokers vs. plataformas de streaming de eventos

Considerando que os message brokers podem oferecer suporte a dois ou mais padrões de sistema de mensagens, incluindo filas de mensagens e pub/sub, as plataformas de streaming de eventos oferecem somente padrões de distribuição do estilo pub/sub. Projetadas para uso com altos volumes de mensagens, as plataformas de streaming de eventos são facilmente escaláveis. Elas são capazes de solicitar fluxos de registros em categorias chamadas tópicos para armazená-los por tempo predeterminado. Ao contrário dos message brokers, as plataformas de streaming de eventos não podem garantir a entrega de mensagens ou rastrear quais consumidores as receberam.

As plataformas de streaming de eventos oferecem mais escalabilidade do que os message brokers, mas menos recursos que garantem a tolerância a falhas (como o reenvio de mensagens), bem como recursos limitados de roteamento de mensagens e enfileiramento.

Saiba mais sobre a arquitetura orientada por eventos.

Message broker vs. ESB (barramento de serviço corporativo)

Um barramento de serviço corporativo (ESB) é um padrão arquitetônico utilizado algumas vezes em arquiteturas orientadas por serviços implementadas entre as empresas. Em um ESB, uma plataforma de software centralizada combina protocolos de comunicação e formatos de dados em uma "linguagem comum" que todos os serviços e aplicativos na arquitetura possam compartilhar. Ele pode, por exemplo, converter as solicitações que recebe de um protocolo (como XML) para outro (como JSON). Os ESBs transformam suas cargas úteis de mensagens usando um processo automatizado. A plataforma centralizada de software também trata de outra lógica de orquestração, como conectividade, roteamento e processamento de solicitações.

As infraestruturas ESB são complexas e podem causar problemas durante a integração, além de serem caras. É difícil solucionar problemas em ambientes de produção, eles não são fáceis para ajustar a escala e a atualização é tediosa.

Os message brokers são uma alternativa "leve" aos ESBs, pois fornecem uma funcionalidade semelhante: um mecanismo para comunicações entre serviços, só que mais simples e barato. Eles são adequados para uso nas arquiteturas de microsserviços que se tornaram mais comuns à medida que os ESBs caíram em desuso.

Casos de uso do message broker

Implementar os message brokers pode atender a uma grande variedade de necessidades de negócios entre os setores de mercado e nos diversos ambientes de computação corporativa. Eles são úteis quando uma comunicação confiável entre aplicativos e a garantia da entrega das mensagens são uma necessidade.

Os message brokers são frequentemente empregados das formas a seguir:

  • Operações financeiras e processamento de pagamentos: é fundamental ter certeza de que os pagamentos são enviados uma única vez. Usar um message broker para lidar com os dados dessas transações oferece garantia de que as informações de pagamento não serão perdidas nem duplicadas acidentalmente, além de fornecer prova de recebimento e permitir que os sistemas se comuniquem de forma confiável, mesmo quando as redes intermediárias estão inativas.
  • Processamento e atendimento de pedidos de e-commerce: para fazer negócios on-line, a força da reputação de sua marca depende da confiabilidade do website e da plataforma de e-commerce. A capacidade dos message brokers de aprimorar a tolerância a falhas e garantir que as mensagens sejam consumidas uma única vez faz deles uma escolha natural para processar pedidos on-line.
  • Proteger dados altamente sensíveis em repouso e em movimento: tanto para setores de mercado altamente regulados quanto para negócios que enfrentam riscos de segurança significativos, é possível escolher uma solução de sistema de mensagens com recursos de criptografia de ponta a ponta.

Message brokers e a IBM Cloud

Os message brokers são cada vez mais importantes à medida que as organizações modernizam os aplicativos na jornada para a cloud. Muitas das empresas mais bem-sucedidas do mundo, incluindo 85% das empresas da Fortune 100, contam com os recursos de message broker da IBM, que são desenvolvidos para suportar os ambientes de desenvolvimento ágil de hoje, as infraestruturas de cloud híbrida que se baseiam em microsserviços e uma ampla variedade de tipos de sistema e requisitos de conectividade.

Dê o próximo passo: Conheça o IBM Cloud Pak for Integration, que é desenvolvido com base na capacidade principal do IBM MQ, a solução líder de sistema de mensagens corporativo.

Comece a usar com uma conta IBM Cloud hoje mesmo.