O que é um Message broker?
Um "broker" é um intermediário de comunicação entre diferentes aplicativos, sistemas e serviços. Ele age como um tradutor de mensagens, permitindo que serviços interdependentes "conversem" diretamente, mesmo que tenham sido escritos em diferentes linguagens de programação ou implementados em diferentes plataformas.
Esses intermediários são chamados de "message brokers" e fazem parte de um conjunto de ferramentas chamado "middleware", que ajuda os desenvolvedores a lidar com o fluxo de dados entre diferentes partes de um aplicativo, permitindo que eles se concentrem na lógica principal do programa. Esse tipo de ferramenta pode ser usado para ajudar aplicativos que funcionam em plataformas diferentes a se comunicarem uns com os outros.
Os message brokers podem validar, armazenar, encaminhar e entregar mensagens aos destinos apropriados. Eles são como intermediários entre diferentes aplicativos, permitindo que remetentes emitam mensagens sem saber onde estão os destinatários, se eles estão ativos ou quantos são. Isso facilita a comunicação entre diferentes partes do sistema.
Para garantir que as mensagens sejam armazenadas e entregues de maneira confiável, os message brokers geralmente dependem de uma estrutura ou componente chamado "message queue", que armazena e organiza as mensagens até que os aplicativos possam processá-las. As mensagens são armazenadas na ordem exata em que foram enviadas e permanecem na fila até que a confirmação de recebimento seja feita.
Como os message brokers funcionam?
Producer - a aplicação responsável pelo envio de mensagens. Está conectado ao intermediário de mensagens. No padrão de publicação/assinatura (vamos chegar lá), são chamados de publicadores.
Consumer - o ponto final que consome mensagens que estão aguardando no intermediário de mensagens. No padrão de publicação/assinatura, são chamados de assinantes.
Queue/topic - uma pasta em um sistema de arquivos. O intermediário de mensagens os usa para armazenar mensagens.
Os message brokers oferecem dois padrões básicos de distribuição de mensagens ou estilos de comunicação:
Point-to-point messaging: Este é 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. A comunicação ponto a ponto é chamada quando uma mensagem deve ser agida apenas uma vez. Exemplos de casos de uso adequados para este estilo de comunicação incluem processamento de folha de pagamento e transações financeiras. Nestes sistemas, tanto remetentes quanto destinatários precisam de garantia de que cada pagamento será enviado uma única vez.
Publish/subscribe: Neste padrão de distribuição de mensagens, frequentemente chamado de "pub/sub", o produtor de cada mensagem a publica em um tópico e vários consumidores de mensagens se inscrevem em tópicos dos quais desejam receber mensagens. 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 de estilo de transmissão, no qual há uma relação de um-para-muitos entre o publicador da mensagem e seus consumidores. Se, por exemplo, uma companhia aérea quiser divulgar atualizações sobre os horários de chegada ou o status de atraso de seus voos, várias partes poderiam utilizar a informação: equipes em solo realizando manutenção e reabastecimento da aeronave, manipuladores de bagagens, comissários de bordo e pilotos preparando-se para a próxima viagem do avião e operadores de displays visuais notificando o público.
Usar um message broker oferece diversas vantagens, tais como:
Possibilita a comunicação entre serviços que não estão em execução simultânea. O produtor pode enviar mensagens independentemente de o consumidor estar ativo ou não, desde que o message broker esteja em execução.
Melhora o desempenho do sistema por meio da introdução de processamento assíncrono. Tarefas de alta intensidade podem ser distribuídas para processos separados, acelerando a aplicação e melhorando a experiência do usuário.
Aumenta a confiabilidade do sistema garantindo a transmissão de mensagens. Os message brokers oferecem um mecanismo de reenvio que pode enviar a mensagem imediatamente ou em um tempo determinado em caso de falha do consumidor. Além disso, há suporte para o roteamento de mensagens não entregues por meio do mecanismo de "dead-letter".
Agora que você tem uma melhor compreensão do que é um message broker e sua importância. 😎