Arquitetura de Comunicação de Dados
Componentes:
-
Publisher MQTT:
- Responsável por enviar dados para o broker MQTT.
- Configurado para se conectar ao broker HiveMQ.
-
Broker MQTT (HiveMQ):
- Serviço na nuvem que gerencia a comunicação entre os publishers e os subscribers MQTT.
- Recebe os dados dos publishers e os encaminha para os subscribers.
-
Subscriber MQTT:
- Subscreve para receber dados do broker MQTT.
- Configurado para receber dados do broker HiveMQ.
- Capta os dados publicados pelos publishers.
-
RabbitMQ:
- Sistema de mensageria que gerencia filas de mensagens.
- Recebe dados do subscriber MQTT e os coloca em uma fila para processamento.
-
Consumer RabbitMQ:
- Consome dados da fila gerenciada pelo RabbitMQ.
- Processa os dados conforme necessário.
- Envia os dados processados para o banco de dados RDS PostgreSQL.
-
Banco de Dados RDS PostgreSQL:
- Banco de dados relacional hospedado na AWS RDS.
- Recebe os dados processados do consumer RabbitMQ.
- Armazena os dados de forma persistente para uso futuro.
Fluxo de Dados:
- Os publishers MQTT enviam dados para o broker HiveMQ.
- O broker HiveMQ encaminha os dados para o subscriber MQTT.
- O subscriber MQTT capta os dados e os passa para o RabbitMQ.
- O RabbitMQ coloca os dados em uma fila para processamento.
- O consumer RabbitMQ consome os dados da fila, os processa e os envia para o banco de dados RDS PostgreSQL para armazenamento.
Configuração e Tecnologias Utilizadas:
- MQTT (Message Queuing Telemetry Transport): Protocolo de mensagens leve e eficiente para comunicação entre dispositivos.
- HiveMQ: Broker MQTT hospedado na nuvem, utilizado para roteamento e entrega de mensagens.
- RabbitMQ: Sistema de mensageria que suporta diferentes protocolos e padrões de comunicação, como AMQP (Advanced Message Queuing Protocol).
- AWS RDS PostgreSQL: Serviço de banco de dados relacional gerenciado na AWS (Amazon Web Services), que oferece escalabilidade, alta disponibilidade e segurança para aplicativos.