3. Arquitetura do MQTT
3.1 Modelo Publish/Subscribe
O MQTT utiliza um modelo de comunicação do tipo Publish/Subscribe, no qual os dispositivos publicadores enviam mensagens para um intermediário chamado broker, e os dispositivos assinantes recebem apenas as mensagens dos tópicos aos quais estão inscritos.
Esse modelo permite que os remetentes e receptores das mensagens estejam logicamente desacoplados. Ou seja, quem envia uma mensagem não precisa saber quem a receberá, e vice-versa. Isso simplifica o desenvolvimento de aplicações distribuídas e favorece a escalabilidade.
Fonte: HiveMQ Blog
3.2 Elementos principais: Cliente, Broker e Tópico
A arquitetura do MQTT é baseada em três componentes fundamentais:
- Cliente: dispositivo ou aplicação que se conecta ao broker. Pode ser um sensor, um sistema embarcado, um aplicativo móvel, entre outros. Os clientes podem publicar mensagens e/ou assinar tópicos.
- Broker: servidor responsável por gerenciar as conexões, receber publicações e distribuí-las aos assinantes. É o núcleo da arquitetura MQTT.
- Tópico: canal hierárquico de comunicação identificado por uma string. É por meio dos tópicos que as mensagens são organizadas, publicadas e roteadas para os assinantes.
3.3 Comunicação assíncrona e desacoplada
O MQTT opera de forma assíncrona, o que significa que os dispositivos não precisam esperar respostas imediatas para cada mensagem enviada. Esse comportamento é especialmente útil em cenários com comunicação intermitente ou onde a latência precisa ser minimizada.
Além disso, como os clientes estão desacoplados, é possível adicionar ou remover dispositivos de uma rede MQTT sem impactar diretamente os demais participantes. Isso torna o protocolo ideal para ambientes dinâmicos e escaláveis.