ÍNDICE DE CONTEÚDO
- AMQP – Protocolo de Comunicação para IoT
- AMQP – Instalação do cliente e do broker RabbitMQ
- AMQP – Testando a Comunicação de Clientes ao Broker
Assim como (ou ainda mais que) o MQTT (ou outros protocolos de comunicação), o AMQP possui uma série de especificações, opções de configuração e conceitos básicos relativos ao funcionamento do protocolo. Mas como este é um artigo introdutório e nosso principal objetivo é explorar as principais funcionalidades do AMQP, faremos isto colocando a mão na massa! Para isso, instalaremos um broker AMQP em nossa máquina e faremos a comunicação entre dois clientes. Apresento-lhes o RabbitMQ!
O que é o RabbitMQ?
“RabbitMQ is the most popular open source message broker” – ou, em bom Português, o RabbitMQ afirma ser o broker open source mais popular em todo o mundo. É uma aplicação aberta que se destina à comunicação assíncrona e, para isso, oferece suporte nativo ao protocolo AMQP 0-9-1 (não se engane, ele oferece também suporte a outros protocolos, incluindo o AMQP 1.0 e o MQTT). Além disso, pode ser executado em diversos sistemas operacionais, bem como possui ferramentas para desenvolvedores escritas em diversas linguagens de programação.
Instalação
Em nosso artigo introdutório, utilizaremos um computador como broker – ou seja, como nosso servidor de mensagens – e utilizaremos o mesmo computador como cliente (publisher/consumer). Primeiramente, instalaremos o RabbitMQ em nosso computador com o Ubuntu 16.04.4 como sistema operacional. A seguir, disponibilizamos uma máquina virtual com o Ubuntu 16.04.4 “em branco” para acompanharem o tutorial (não se preocupem, ao final disponibilizaremos outra VM com o ambiente instalado para testes diversos). Importe-as com o VirtualBox:
VM “em branco” com Ubuntu 16.04.4
Dependências
Como qualquer programa, o RabbitMQ depende de outros softwares e suítes para o correto funcionamento. Assim, primeiramente instalaremos estas dependências.
Erlang
O Rabbit é escrito na linguagem Erlang, portanto, sua principal dependência é o pacote de runtime do Erlang. Para instalar (ou atualizar) o Erlang, navegue até a pasta /tmp e, em seguida, baixe o arquivo do pacote dos repositórios Erlang:
1 2 3 |
$ cd /tmp/ $ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb $ sudo dpkg -i erlang-solutions_1.0_all.deb |
A seguir, atualize o cache do repositório e instale o pacote esl-erlang:
1 2 |
$ sudo apt-get update $ sudo apt-get install esl-erlang |
As Figuras a seguir, de 1 a 3, exibem as telas com os comandos executados:
Instalando o RabbitMQ Server
Uma vez instalado o Erlang, podemos instalar agora o RabbitMQ propriamente dito. Semelhante ao Erlang, precisamos primeiramente adicionar o repositório do RabbitMQ à lista de repositórios do sistema juntamente com a chave pública para validação e, após atualizar o cache dos repositórios, instalamos o RabbitMQ:
1 2 3 4 |
$ echo "deb https://dl.bintray.com/rabbitmq/debian xenial main" | sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list $ wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add - $ sudo apt-get update $ sudo apt-get install rabbitmq-server |
As Figuras 4 e 5 ilustram este processo no Ubuntu 16.04 (Xenial).
Testando a Instalação do RabbitMQ Server
Finalmente, é possível testar a instalação do RabbitMQ Server. A Figura 6 a seguir exibe o estado do serviço do RabbitMQ Server:
1 |
$ systemctl status rabbitmq-server.service |
Habilitando a Interface de Gerenciamento (Management UI)
Embora todas as configurações do broker sejam acessíveis através de comandos específicos, o RabbitMQ conta com uma interface de gerenciamento gráfica que facilita bastante a sua configuração, visualização e operação do broker. Para habilitá-la:
1 |
$ sudo rabbitmq-plugins enable rabbitmq_management |
Uma vez habilitada a interface gráfica de gerenciamento do RabbitMQ, é possível acessá-la através do navegador pelo endereço localhost:15672. A Figura 8 a seguir exibe o acesso à interface de gerenciamento. É necessário um usuário do RabbitMQ para acessá-la e, por padrão, é possível utilizar o usuário “guest”, com a senha sendo também “guest”. Note que este usuário é usuário padrão e que somente clientes locais poderão utilizá-lo.
Uma vez “logado” na interface, é possível acessar as diversas opções de visualização, monitoramento e gerenciamento do RabbitMQ, tal como exibe a Figura 9.
No próximo artigo vamos realizar a comunicação entre o cliente e o broker. Aguarde!
Saiba mais
MQTT-SN: MQTT para rede de sensores