Como Disponibilizar o RabbitMQ para múltiplos consumos
Data: 07/02/23
Autores:
1.João Batista da Silva Junior (Assessor)
2.Michel Farias Ferreira (Assessor)
_________________________________________________________________________________________________________________________________________
1. OBJETIVO
Esse documento tem como intuito aprofundar o conhecimento na ferramenta RabbitMQ, assim como encontrar uma forma de disponibilizar a ferramenta no ambiente DevOps da SETIC de uma forma ela possui múltiplos consumos.
2. INTRODUÇÃO
Fez-se necessário realizar o estudo por entender que seria de grande valia para o ambiente de desenvolvimento da SETIC o disponibilização da ferramenta RabbitMQ para múltiplos consumos. Que por sua vez poderia ser utilizada em diversos projetos por inúmeras secretarias.
3. DESENVOLVIMENTO
O RabbitMQ é uma plataforma de mensagens de código aberto que fornece uma maneira confiável e escalável de trocar informações entre aplicações. Ele funciona como um intermediário entre as aplicações que querem trocar informações (produtores) e aquelas que desejam recebê-las (consumidores).
3.1 Como o RabbitMQ funciona em uma visão geral?
Produtores enviam mensagens para o RabbitMQ, que as coloca em uma ou mais filas.
O RabbitMQ usa regras de roteamento de mensagens para determinar em quais filas as mensagens devem ser colocadas.
Consumidores se conectam ao RabbitMQ e solicitam mensagens das filas apropriadas.
O RabbitMQ então entrega as mensagens aos consumidores.
Quando um consumidor processa uma mensagem, ele a marca como concluída e a remove da fila.
O RabbitMQ oferece recursos avançados, como confirmação de entrega de mensagens, garantia de entrega em ordem, suporte a múltiplos protocolos e ferramentas de gerenciamento e monitoramento. Ele é altamente escalável e pode lidar com cargas de trabalho pesadas, tornando-se uma escolha popular para aplicações de larga escala que precisam trocar informações em tempo real.
3.2 Para disponibilizar o RabbitMQ para múltiplos consumos, siga estes passos:
Configuração do servidor RabbitMQ: Instale e configure o RabbitMQ em um servidor dedicado, garantindo que ele tenha recursos suficientes para lidar com o tráfego de múltiplos consumidores.
Criação de exchanges: Crie exchanges no RabbitMQ para gerenciar o roteamento de mensagens. As exchanges podem ser de vários tipos, como direct, fanout e topic, dependendo das necessidades de sua aplicação.
Configuração de filas: Crie filas para armazenar as mensagens enviadas aos consumidores. As filas devem ser configuradas de acordo com as necessidades de sua aplicação, incluindo políticas de retenção de mensagens, prioridades e tamanhos máximos.
Configuração de bindings: Configure bindings entre as exchanges e as filas para determinar como as mensagens são roteadas aos consumidores.
Autenticação e autorização: Configure a autenticação e autorização para controlar quem tem acesso ao RabbitMQ.
Configuração de consumidores: Configure cada consumidor para se conectar ao RabbitMQ e receber mensagens das filas apropriadas.
Monitoramento e gerenciamento: Monitore o RabbitMQ para garantir que ele esteja funcionando corretamente e faça o gerenciamento necessário, incluindo backup e recuperação de dados, manutenção do servidor e solução de problemas.
Lembre-se de que o RabbitMQ é altamente escalável e pode lidar com múltiplos consumidores, mas é importante configurá-lo corretamente e monitorá-lo de perto para garantir sua disponibilidade e desempenho.
3.3 Diagrama
Um diagrama básico mostrando como o RabbitMQ pode ser disponibilizado para múltiplos consumos:
- Produtores enviam mensagens para o RabbitMQ, que as armazena em filas.
- O RabbitMQ usa regras de roteamento de mensagens para determinar em quais filas as mensagens devem ser colocadas.
- Consumidores se conectam ao RabbitMQ e solicitam mensagens das filas apropriadas.
- O RabbitMQ então entrega as mensagens aos consumidores.
- Quando um consumidor processa uma mensagem, ele a marca como concluída e a remove da fila.
Isso é apenas um exemplo básico. O RabbitMQ é altamente personalizável e pode ser configurado de muitas maneiras diferentes, dependendo das necessidades de sua aplicação.
3.4 Vantagens em utilizar o RabbitMQ
Aqui estão algumas das principais vantagens do RabbitMQ:
Escalabilidade: o RabbitMQ é altamente escalável, o que significa que ele pode lidar com cargas de trabalho pesadas e fornecer alta disponibilidade para aplicações de larga escala.
Confiabilidade: o RabbitMQ fornece recursos como confirmação de entrega de mensagens e garantia de entrega em ordem, o que torna possível garantir a integridade das mensagens trocadas entre as aplicações.
Flexibilidade: o RabbitMQ suporta múltiplos protocolos, o que significa que ele pode ser usado com uma ampla variedade de tecnologias e plataformas.
Ferramentas de gerenciamento: o RabbitMQ oferece uma ampla gama de ferramentas de gerenciamento e monitoramento, incluindo uma interface web, que ajudam os administradores a garantir o correto funcionamento do sistema.
Integração fácil: o RabbitMQ é fácil de integrar com outras tecnologias, o que significa que ele pode ser usado como uma solução central para muitos sistemas distintos.
Comunidade ativa: o RabbitMQ tem uma comunidade ativa e crescente de desenvolvedores e usuários, o que significa que há muitos recursos e suporte disponíveis para ajudar os usuários a obter o máximo do sistema.
4. CONCLUSÃO
De acordo com a necessidade que no ambiente de desenvolvimento e produção além de outras secretarias têm na utilização de ferramentas já disponibilizadas no ambiente da SETIC, além de novas ferramentas na nossa infraestrutura estável e consolidada, A disponibilização de um sistema de mensageria principal para todos os projetos.
O RabbitMQ, se mostra de certa forma viável para a SETIC. Esse estudo nos trouxe uma análise de como isso pode ser realizado. As próximas etapas serão de testes e implantação.
5. Referência
Documentação oficial
https://www.rabbitmq.com/documentation.html
Nenhum comentário