Neste artigo vou apresentar uma introdução sobre o RabbitMQ, apresentando seus principais conceitos e funcionalidades.
Introdução
O RabbitMQ é um dos message broker de código aberto mais populares, sendo utilizado em empresas de todos os tamanhos.
Um message broker é um sistema que permite que diferentes componentes, como aplicações e aplicativos, se comuniquem entre si, trocando informações. Para isso, geralmente utilizam uma estrutura de fila de mensagens, que será a responsável por armazenar e ordenar mensagens enquanto os consumidores (como aplicativos ou aplicações) não as processam.
Voltando ao RabbitMQ: ele é leve, fácil de publicar em diversos ambientes, como localmente, on-premises e em nuvem, suportando diversos protocolos de mensageria. Por exemplo, para testes locais é bem simples de se criar uma instância utilizando Docker.
Como um dos princípios da mensageria, o RabbitMQ possibilita que aplicações se conectem entre si e escalem, de maneira desacoplada.
Por que utilizar?
Entre os principais benefícios de se utilizar o RabbitMQ, se encontram:
- Confiabilidade, através de mecanismos como persistência de mensagens e confirmações de processamento (ACK);
- Suporte a múltiplos protocolos, como AMQP e MQTT;
- Leve;
- Suporte a múltiplas linguagens, como C#, Java, Ruby, Python, JavaScript, e Go, com grande gama de bibliotecas;
- Interface de gerenciamento intuitiva e fácil de utilizar;
- Flexibilidade no roteamento de mensagens.
Além disso, existem os benefícios que estão associados a mensageria, que por consequência se transferem ao RabbitMQ, como:
- Desacoplamento na comunicação;
- Possibilidade se utilizar padrões como Pub/Sub;
- Maior resiliência;
Principais conceitos
Vamos agora para os principais conceitos associados ao RabbitMQ.
Fila: estrutura onde as mensagens são armazenadas e consumidas. Tem como principais características, que podem ter valor verdadeiro ou falso:
- Durável: a fila segue existindo mesmo que o message broker reinicie;
- Auto-Delete: quando a fila chegue a ter apenas um consumidor e ele se desinscreve, a fila é apagada;
- Exclusiva: a fila é utilizada por apenas uma conexão, sendo apagada quando essa conexão for encerrada.
Exchange: são os agentes responsáveis por rotear as mensagens para filas, utilizando atributos de cabeçalho, routing keys ou bindings.
Binding: conexão utilizada para configurar uma relação entre uma fila e um exchange.
Routing Key: é um atributo adicionado ao cabeçalho da mensagem, servindo como um “endereço” que o exchange poderá decidir como rotear a mensagem com base nos Bindings definidos.
Como Instalar
A maneira mais fácil de se instalar e iniciar o RabbitMQ é através de um comando utilizando Docker. Extraí do próprio site do RabbitMQ o comando Docker abaixo para se iniciar o RabbitMQ e sua ferramenta de gerenciamento, que conta com uma interface Web.
# latest RabbitMQ 3.10
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.10-management
Outras maneiras de instalar o RabbitMQ estão incluídas também na página de Downloads do site do RabbitMQ.
Após executar o serviço do RabbitMQ, basta navegar para a rota http://localhost:15672/, e a tela de login da interface Web da ferramenta de gerenciamento aparecerá.
O login e senha padrões são guest e guest, respectivamente. Com isso, terá acesso a página principal. Ela será explorada em um artigo futuro.
Quer alavancar sua carreira como Desenvolvedor(a) .NET?
Opa, aqui é o Luis Felipe (LuisDev), criador do blog LuisDev.
Além de Desenvolvedor .NET Sênior, eu sou instrutor de mais de 700 alunos e também tenho dezenas de mentorados.
Conheça o com mais de 800 video-aulas sobre C# e desenvolvimento de APIs com ASP NET Core, Microsserviços com ASP NET Core, Arquitetura de Software, Computação em Nuvem, SQL, HTML, CSS e JavaScript, JavaScript Intermediário, TypeScript, Desenvolvimento Front-End com Angular, e Desenvolvimento Front-end com React. Diversos mini-cursos disponíveis aos alunos e atualizações gratuitas.
Suporte dedicado, e comunidade de centenas de alunos.
Completo e online, destinado a profissionais que querem dar seu próximo passo em sua carreira como desenvolvedores .NET.
Clique aqui para ter mais informações e garantir sua vaga
Conclusão
Neste artigo foi apresentado o RabbitMQ, junto com seus principais benefícios, conceitos, e como instalar e iniciar ele com Docker. Finalmente, acessamos a interface Web da ferramenta de gerenciamento, realizando o login e visualizando a página principal.