Instalando o RabbitMQ via Docker

Atualizado em: 28 de setembro de 2024

O RabbitMQ é serviço de gerenciamento de filas para recebimento e entrega de mensagens entre aplicações, mesmo que tenham sido desenvolvidas em diferentes linguagens de programação. Ele é gratuito e possui o código fonte aberto e disponível em: https://github.com/rabbitmq.

Utiliza o protocolo AMQP para realizar a troca de mensagens e faz uso, por padrão, das portas:

  • 5672/TCP, para entrega e recebimento de mensagens.
  • 15672/TCP, para acessar a interface de gerenciamento do RabbitMQ.

Instalando o RabbitMQ via Docker

A instalação usando o Docker é bem mais simples e rápida.

Se você não sabe o que é Docker, recomendo começar lendo os links abaixo. É um longo caminho, mas vale a pena conhecer essa tecnologia.

http://blog.aeciopires.com/palestra-transportando-as-aplicacoes-entre-varios-ambientes-com-docker/
http://blog.aeciopires.com/primeiros-passos-com-docker/

Também ministro curso de Docker: http://blog.aeciopires.com/curso-docker

1) Crie o diretório abaixo para persistir os dados fora do conteiner.

sudo mkdir -p /docker/rabbitmq/data

2) Baixe a imagem Docker do RabbitMQ.

VERSAO=4-management
export VERSAO
docker pull rabbitmq:$VERSAO

Use o comando abaixo para listar as imagens obtidas.

docker images

3) Execute o conteiner do RabbitMQ.

docker run -d --name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
--restart=always \
--hostname rabbitmq-master \
-v /docker/rabbitmq/data:/var/lib/rabbitmq \
rabbitmq:$VERSAO

Fonte: https://hub.docker.com/_/rabbitmq/

4) Acesse o RabbitMQ na URL http://IP-Servidor:15672. O login padrão é guest e a senha é guest.

5) Se quiser parar o conteiner, é só executar o comando abaixo.

docker stop rabbitmq

6) Para iniciá-lo novamente, execute o comando abaixo.

docker start rabbitmq

7) Para visualizar os logs, execute o comando abaixo.

docker logs -f rabbitmq

Mais informações sobre o RabbitMQ e como configurá-lo podem ser encontradas nos links abaixo.

https://www.rabbitmq.com/documentation.html
http://blog.aeciopires.com/primeiros-passos-com-rabbitmq/

Caso não consiga acessar o RabbitMQ via interface Web, pode gerenciá-lo pela linha de comando.

Acessando o prompt de comandos do conteiner rabbitmq

docker exec -it rabbitmq /bin/bash

Acessando a ajuda do comando rabbitmqadmin:

rabbitmqadmin help subcommands
rabbitmqadmin --help
rabbitmqctl --help

Listando os exchanges existentes no RabbitMQ:

rabbitmqadmin list exchanges

Listando as filas existentes no RabbitMQ:

rabbitmqadmin list queues

Listando as filas existentes no RabbitMQ com mais detalhes:

rabbitmqadmin -f long list queues
rabbitmqadmin -f long -d3 list queues

Listando os bindins existentes no RabbitMQ:

rabbitmqadmin -f long -d3 list bindings

Listando os vhosts existentes no RabbitMQ:

rabbitmqadmin list vhosts

Listando os usuários existentes no RabbitMQ:

rabbitmqadmin list users

Adicionando um exchange com o nome ‘app1‘ e o tipo ‘direct‘ no vhost ‘/‘:

rabbitmqadmin declare exchange name=app1 type=direct durable=true --vhost=/

Adicionando uma fila com o nome ‘logs_app1‘, durável e o tipo ‘direct‘ no vhost ‘/

rabbitmqadmin declare queue name=logs_app1 durable=true --vhost=/

Adicionando um bind entre o exchange ‘app1‘ e a queue ‘logs_app1‘ com a routing_key ‘app1-logs_app1‘:

rabbitmqadmin declare binding source=app1 destination=logs_app1 routing_key=app1-logs_app1

Adicionando um usuário ao rabbitmq com o nome ‘user_app1‘ com permissão de ‘administrator‘:

rabbitmqctl add_user user_app1 SENHA
rabbitmqctl set_user_tags user_app1 administrator
rabbitmqctl set_permissions -p / user_app1 "." "." "."
rabbitmqctl set_topic_permissions -p / user_app1 app1 "." ".*"

Altere a senha do usuário guest:

rabbitmqctl change_password guest NOVA-SENHA

Definindo o nome do cluster RabbitMQ para ‘rabbit@rabbitmq-master’:

rabbitmqctl set_cluster_name rabbit@rabbitmq-master

Exportando a configuração (lembre-se de salvar em um diretório ou volume comum ao conteiner e ao host)

rabbitmqadmin -H localhost -u guest -p SENHA export /tmp/rabbit.config

Importando a configuração (lembre-se de montar um diretório ou volume comum ao conteiner e ao host):

rabbitmqadmin -q import /tmp/rabbit.config

Visualizando a quantidade de mensagens numa fila:

rabbitmqadmin -H localhost -u guest -p SENHA get queue=logs_app1 count=10

Observação:
A partir do momento que a senha do usuário guest foi alterada, se faz necessário adicionar os parâmetros -H localhost -u guest -p SENHA em qualquer comando do rabbitmqadmin.

Categories: , ,

5 respostas para “Instalando o RabbitMQ via Docker”

  1. Avatar de Rodrigo Estevao
    Rodrigo Estevao

    Excelente post! Obrigado!

  2. Avatar de Kayo
    Kayo

    Excelente conteúdo! Parabéns!

  3. Avatar de Rogerio Correa de Castro
    Rogerio Correa de Castro

    Ótimo conteúdo! Bem explicado, sem firulas, direto ao ponto!

  4. Avatar de Délcio Chicala Francisco
    Délcio Chicala Francisco

    Top, muito bom!!!

  5. Avatar de Ricardo Turco
    Ricardo Turco

    Que conteúdo MARAVILHOSO !!! … Parabéns.

    Obrigado por compartilhar esse conhecimento conosco, tenho certeza q vai ajudar muitas pessoas.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *