O que é um message broker

11 de outubro de 2021

O que é um message broker

Um corretor de mensagens é um software que permite que aplicações, sistemas e serviços se comuniquem e troquem informações, mesmo que tenham sido escritos em linguagens diferentes ou implementados em plataformas diferentes, traduzindo mensagens entre protocolos formais de mensagens.

Os agentes de mensagens são módulos de software dentro de um middleware de mensagens ou em soluções de middleware orientado a mensagens ("message-oriented middleware" ou MOM). Esse middleware fornece aos desenvolvedores uma maneira padronizada de controlar o fluxo de dados entre os componentes de uma aplicação, possibilitando que foquem na lógica principal. Ele pode atuar como uma camada de comunicação distribuída que permite que aplicações em várias plataformas se comuniquem internamente.

Os agentes de mensagens podem validar, armazenar, direcionar e entregar mensagens aos destinos apropriados. Eles atuam como intermediários entre outras aplicações, permitindo que os remetentes enviem mensagens sem saber onde estão os receptores, se estão ativos ou quantos são. Essa abordagem promove o desacoplamento de processos e serviços nos sistemas.

Para garantir um armazenamento confiável de mensagens e uma entrega assegurada, os agentes de mensagens frequentemente utilizam uma subestrutura ou componente chamado fila de mensagens, que armazena e ordena as mensagens até que as aplicações consumidoras 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.

Mensagens assíncronas referem-se ao tipo de comunicação entre aplicações que os agentes de mensagens tornam possível. Isso previne a perda de dados valiosos e permite que os sistemas continuem operando mesmo diante de problemas de conectividade intermitente ou latência, comuns em redes públicas. A comunicação assíncrona de mensagens garante que as mensagens sejam entregues uma única vez e na ordem correta em relação às outras mensagens.

Os agentes de mensagens podem incluir gerenciadores de filas para lidar com as interações entre várias filas de mensagens, além de serviços que oferecem funcionalidades de roteamento de dados, tradução de mensagens, persistência e gerenciamento de estado dos clientes.

Vista aérea de rodovias

Fique por dentro da nuvem 


Receba o boletim informativo semanal do Think para ver orientações especializadas sobre a otimização das configurações multinuvem na era da IA.

Modelos de agentes de message

Os agentes de mensagens disponibilizam dois estilos fundamentais de distribuição de mensagens ou modelos de comunicação:

Mensagens ponto a ponto: esse é o padrão de distribuição utilizado em filas de mensagens, com uma relação de um para um entre o remetente e o destinatário da mensagem. Cada mensagem na fila é enviada para apenas um destinatário e é consumida apenas uma vez. O sistema de mensagens ponto a ponto é necessário quando se deve agir em relação a uma mensagem apenas uma vez. Exemplos de casos de uso adequados para esse estilo de mensagens incluem processamento de folha de pagamento e transações financeiras. Nesses sistemas, tanto os remetentes quanto os destinatários precisam de uma garantia de que cada pagamento será enviado uma única vez.

Mensagens de publicação/assinatura: neste padrão de distribuição, frequentemente chamado de "pub/sub", o produtor de cada mensagem a publica em um tópico, e vários consumidores se inscrevem nos tópicos para receber as mensagens de seu interesse. Todas as mensagens publicadas em um tópico são distribuídas para todas as aplicações inscritas nele. Este é um método de distribuição no estilo broadcast, onde existe uma relação de um para muitos entre o publicador da mensagem e seus consumidores. Caso uma companhia aérea, por exemplo, compartilhe atualizações sobre horários de pouso ou atrasos de seus voos, várias equipes poderiam usar essas informações: pessoal de solo para manutenção e abastecimento da aeronave, manipuladores de bagagem, comissários e pilotos que se preparam para o próximo voo, além dos operadores de telas de informações para o público. Um estilo de mensagens pub/sub seria adequado para uso nesse cenário.

AI Academy

Preparando-se para a IA com a nuvem híbrida

Guiado pelos principais líderes da IBM, o conteúdo foi desenvolvido para ajudar líderes empresariais a terem o conhecimento necessário para priorizar os investimentos em IA que podem estimular o crescimento.

Agentes de mensagens em arquiteturas de nuvem

As aplicações nativas em nuvem são criadas para aproveitar os benefícios inerentes da computação em nuvem, incluindo flexibilidade, escalabilidade e rápida implementação. Essas aplicações são compostas por componentes pequenos, discretos e reutilizáveis, chamados microsserviços. Cada microsserviço é implementado e pode ser executado de forma independente dos outros. Isso significa que qualquer um deles pode ser atualizado, dimensionado ou reiniciado sem afetar outros serviços do sistema. Muitas vezes empacotados em contêineres, os microsserviços funcionam em conjunto para compor uma aplicação completa, embora cada um tenha seu próprio stack, incluindo um banco de dados e um modelo de dados que podem ser distintos dos demais.

Os microsserviços devem ter um meio de comunicação entre si para operar em conjunto. Os agentes de mensagens são um dos mecanismos utilizados por eles para criar essa espinha dorsal de comunicação compartilhada.

Os agentes de mensagens são frequentemente usados para gerenciar a comunicação entre sistemas locais e componentes na nuvem em ambientes de nuvem híbrida. O uso de um agente de mensagens oferece maior controle sobre as comunicações entre serviços, garantindo que os dados sejam transmitidos de forma segura, confiável e eficiente entre os componentes de uma aplicação. Os intermediadores de mensagens podem desempenhar um papel semelhante na integração de ambientes multinuvem, facilitando a comunicação entre cargas de trabalho e tempos de execução que operam em diferentes plataformas. Eles também são bem adequados para uso em computação sem servidor, onde serviços individuais hospedados na nuvem são executados sob demanda, conforme cada solicitação.

Agentes de mensagens vs. APIs

As APIs REST são comumente usadas para comunicações entre microsserviços. O termo REST ("Representational State Transfer") define um conjunto de princípios e restrições que os desenvolvedores podem seguir ao criar serviços web. Todos os serviços que aderirem a esses princípios poderão se comunicar por meio de um conjunto uniforme de operadores e solicitações sem estado. A Interface de Programação de Aplicativos (API) refere-se ao código subjacente que, ao seguir as regras REST, permite que os serviços se comuniquem entre si.

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

Os agentes de mensagens viabilizam comunicações assíncronas entre serviços, permitindo que o serviço que envia a mensagem não tenha que aguardar a resposta do serviço destinatário. Isso melhora a tolerância a falhas e a resiliência nos sistemas em que são utilizados. Além disso, o uso de agentes de mensagens facilita a escalabilidade dos sistemas, já que o padrão de mensagens pub/sub consegue acomodar facilmente mudanças na quantidade de serviços. Os agentes de mensagens também monitoram o estado dos consumidores.

Agentes de mensagens vs. plataformas de fluxo de eventos

Enquanto agentes de mensagens podem operar dois ou mais padrões de mensagens, incluindo filas de mensagens e pub/sub, as plataformas de fluxo de eventos oferecem apenas padrões de distribuição no estilo pub/sub. Desenvolvidas para lidar com altos volumes de mensagens, as plataformas de fluxo de eventos são facilmente escaláveis. Elas são capazes de organizar fluxos de registros em categorias chamadas tópicos e armazená-los por um período de tempo predeterminado. No entanto, ao contrário dos agentes de mensagens, as plataformas de fluxo de eventos não podem garantir a entrega das mensagens nem rastrear quais consumidores as receberam.

Plataformas de fluxo de eventos oferecem mais escalabilidade do que agentes de mensagens, mas possuem menos recursos para garantir a tolerância a falhas (como reenvio de mensagens) e recursos limitadas de roteamento e enfileiramento de mensagens.

Saiba mais sobre arquitetura orientada a eventos.

Agente de mensagens vs. ESB (enterprise service bus)

Um barramento de serviço corporativo (ESB) é um modelo arquitetural, às vezes utilizado em arquiteturas orientadas a serviços ("service-oriented architectures" ou SOA) implementadas em empresas. No contexto de um ESB, uma plataforma de software centralizada unifica protocolos de comunicação e formatos de dados em uma "linguagem comum" que todos os serviços e aplicações da arquitetura podem utilizar. A plataforma pode, por exemplo, converter as requisições recebidas de um protocolo (como XML) para outro (como JSON). Os ESB transformam as cargas úteis de suas mensagens por meio de um processo automatizado. A plataforma de software centralizada também gerencia outras lógicas de orquestração, como conectividade, roteamento e processamento de solicitações.

No entanto, as infraestruturas de ESB são complexas, podem ser difíceis de integrar e custosas de manter. Diagnosticar problemas em ambientes de produção é complicado, a escalabilidade é limitada e o processo de atualização é cansativo.

Os agentes de mensagens são uma alternativa "leve" aos ESBs, oferecendo uma funcionalidade semelhante para comunicação entre serviços de forma mais simples e com menor custo. Eles são ideais para uso em arquiteturas de microsserviços, que se tornaram mais comuns à medida que os ESBs perderam popularidade.

Casos de uso de agentes de mensagens

A implementação de agentes de mensagens pode atender a uma ampla variedade de necessidades empresariais em diversos setores e ambientes de computação corporativa. Eles são úteis sempre que é necessária uma comunicação confiável entre aplicações e uma entrega garantida de mensagens.

Agentes de mensagens são frequentemente empregados das seguintes formas:

  • Transações financeiras e processamento de pagamentos: é fundamental garantir que os pagamentos sejam enviados uma única vez. Utilizar um agente de mensagens para gerenciar os dados dessas transações garante que as informações de pagamento não serão perdidas nem duplicadas acidentalmente, fornece comprovação de recebimento e permite que os sistemas se comuniquem com confiabilidade, mesmo quando as redes intermediárias estão fora de operação.

  • Processamento e atendimento de pedidos no e-commerce: se você atua no comércio on-line, a reputação da sua marca depende da confiabilidade do seu site e da plataforma de e-commerce. A capacidade dos agentes de mensagens de aumentar a tolerância a falhas e garantir que as mensagens sejam consumidas uma única vez os torna uma escolha natural para o processamento de pedidos on-line.

  • Protegendo dados altamente sensíveis em repouso e em trânsito: Se o seu setor é altamente regulamentado ou sua empresa enfrenta riscos significativos de segurança, opte por uma solução de mensagens com recursos de criptografia de ponta a ponta.
Soluções relacionadas
IBM MQ

Tenha acesso a um sistema de mensagens de alto desempenho, ampla segurança e com entrega garantida para o seu negócio.

Explore o IBM MQ
Serviços de consultoria de nuvem

Acelere a agilidade e o crescimento dos negócios modernizando suas aplicações de forma permanente e em qualquer plataforma utilizando nossos serviços em nuvem e consultoria. 

Explore serviços de consultoria em nuvem
Software e soluções de integração da IBM

Conecte, automatize e libere o potencial dos negócios com o software da plataforma de integração.

 

Explore os softwares e as soluções de integração
Dê o próximo passo

Conecte aplicações de forma dinâmica, segura e confiável em uma rede de mensagens, permitindo que sua empresa desenvolva aplicações orientadas por mensagens e eventos em escala e com acoplamento fraco.

    Explore o IBM MQ Descubra os softwares e soluções de integração da IBM