IndustryInsights
2026-06-10 17:49:00
Análise do princípio de funcionamento do MQTT
MQTT é um protocolo leve de mensagens de publicação/assinatura que usa brokers, tópicos, sessões, níveis de QoS, mensagens retidas e pacotes eficientes para IoT, telemetria e comunicação de dispositivos em tempo real.

Becke Telcom

Análise do princípio de funcionamento do MQTT

MQTT é um protocolo leve de mensagens criado para comunicação eficiente entre dispositivos, aplicações, sensores, gateways, plataformas em nuvem e sistemas de controle. Ele é amplamente usado em redes IoT, sistemas de telemetria, edifícios inteligentes, monitoramento industrial, plataformas veiculares, sistemas de energia, automação residencial, gerenciamento remoto de equipamentos e aplicações móveis em que largura de banda, energia ou estabilidade de rede podem ser limitadas.

O protocolo é baseado em um modelo de publicação/assinatura. Em vez de um dispositivo enviar dados diretamente para outro, as mensagens são enviadas a um broker. Em seguida, o broker distribui essas mensagens aos clientes que assinaram tópicos correspondentes. Essa estrutura torna a comunicação flexível, escalável e adequada para sistemas com muitos dispositivos que não precisam conhecer o endereço de rede uns dos outros.

Outra forma de pensar sobre mensagens entre dispositivos

A comunicação cliente-servidor tradicional geralmente funciona como uma solicitação e uma resposta diretas. Um cliente pede informações a um servidor, e o servidor responde. O MQTT segue uma ideia diferente. Um dispositivo pode publicar uma mensagem sem saber quem a receberá, enquanto outro dispositivo pode assinar um tópico sem saber quem publicará nele.

Essa separação é útil em grandes sistemas distribuídos. Um sensor de temperatura não precisa saber qual painel, banco de dados, aplicativo móvel ou regra de automação consumirá seus dados. Ele só precisa publicar em um tópico definido. O broker cuida da distribuição.

O resultado é um padrão de comunicação que reduz o acoplamento rígido entre dispositivos. Os sistemas podem adicionar novos assinantes sem alterar o sensor. Também podem adicionar novos publicadores sem reescrever todas as aplicações. Esse é um dos motivos pelos quais o protocolo é popular em projetos de IoT e telemetria.

Arquitetura MQTT de publicação e assinatura com sensor gateway broker painel em nuvem e aplicativo móvel
O MQTT usa um modelo de publicação/assinatura centrado no broker para distribuir mensagens entre dispositivos, aplicações, painéis e serviços em nuvem.

O broker como hub de mensagens

O broker é o componente central da arquitetura. Ele aceita conexões de clientes, autentica clientes quando necessário, recebe mensagens publicadas, compara tópicos com assinaturas e encaminha as mensagens aos assinantes corretos.

Um broker pode operar em uma plataforma em nuvem, servidor privado, gateway de borda, computador industrial, dispositivo embarcado ou serviço gerenciado de mensagens. Em implantações pequenas, um broker pode tratar todo o tráfego. Em implantações maiores, vários brokers podem ser agrupados, interligados, balanceados ou distribuídos entre regiões.

O broker também controla muitos comportamentos operacionais, como estado de sessão, mensagens retidas, controle de acesso, entrega por qualidade de serviço, tempo limite de keepalive, limites de conexão, autorização por tópico e persistência de mensagens. Por isso, o projeto do broker tem impacto direto na confiabilidade, escalabilidade e segurança.

Ciclo de vida da conexão

O cliente estabelece uma sessão

Primeiro, o cliente abre uma conexão de rede com o broker. O MQTT normalmente roda sobre TCP, e implantações seguras costumam usar criptografia TLS. Depois que a conexão de transporte é estabelecida, o cliente envia um pacote CONNECT com informações como ID do cliente, dados de autenticação, valor de keepalive, comportamento da sessão e configurações opcionais de mensagem de testamento.

O broker verifica a solicitação de conexão e responde com um pacote CONNACK. Se a conexão for aceita, o cliente pode começar a publicar, assinar, cancelar assinaturas e receber mensagens. Se a conexão for recusada, o broker fornece um motivo de acordo com a versão do protocolo e a configuração.

O heartbeat mantém o link ativo

O mecanismo de keepalive ajuda os dois lados a detectar conexões interrompidas. Se nenhum dado tiver sido trocado dentro do tempo acordado, o cliente envia um pacote PINGREQ e o broker responde com PINGRESP.

Isso é importante porque dispositivos IoT podem operar em redes instáveis, links móveis, Wi-Fi, conexões celulares, enlaces via satélite ou caminhos WAN remotos. Uma rede pode falhar silenciosamente sem fechar a conexão de forma limpa. O keepalive ajuda a detectar essa condição.

Desconexão e reconexão

Um cliente pode se desconectar normalmente enviando um pacote DISCONNECT. Ele também pode desaparecer inesperadamente por perda de energia, falha de rede, travamento de firmware ou perda de sinal. O broker então aplica as regras de sessão e de mensagem de testamento configuradas para esse cliente.

O comportamento de reconexão é importante em implantações reais. Os dispositivos devem lidar com interrupções de rede de forma controlada, evitar tempestades de reconexão e retomar a comunicação conforme a política de sessão necessária.

Nomes de tópicos e roteamento de mensagens

Tópicos são caminhos em texto usados para classificar mensagens. Um tópico pode parecer uma hierarquia, como building/floor1/room102/temperature ou factory/line3/motor7/status. Publicadores enviam mensagens para tópicos, e assinantes recebem mensagens dos tópicos que assinaram.

Um bom projeto de tópicos é uma das partes mais importantes de uma implantação bem-sucedida. Os nomes devem ser previsíveis, legíveis e alinhados com a estrutura real do sistema. Um projeto ruim dificulta filtragem, permissões, monitoramento e manutenção de longo prazo.

Assinantes podem usar tópicos exatos ou assinaturas com curingas. Um curinga de nível único corresponde a um nível do tópico, enquanto um curinga multinível pode corresponder a muitos níveis. Curingas são úteis para painéis, plataformas analíticas, ferramentas de monitoramento e aplicações de gestão que precisam receber mensagens de muitos dispositivos.

Fluxo de publicação e assinatura

Publicação de dados

Quando um cliente publica dados, ele envia um pacote PUBLISH ao broker. O pacote inclui o nome do tópico, a carga útil, o nível de qualidade de serviço, a flag de retenção e o identificador de pacote quando exigido pelo nível QoS selecionado.

A carga útil pode conter muitos formatos de dados. Pode ser texto simples, JSON, dados binários, valores de sensores, mensagens de status, comandos, alarmes, registros de telemetria ou dados de aplicação codificados. O MQTT em si não define o significado da carga útil. A aplicação decide como estruturá-la e interpretá-la.

Recebimento de assinaturas

Um cliente assina enviando um pacote SUBSCRIBE com um ou mais filtros de tópico. O broker responde com SUBACK e começa a entregar mensagens correspondentes ao cliente conforme o nível QoS solicitado e concedido.

Assinantes podem ser painéis, bancos de dados, motores de automação, serviços em nuvem, aplicativos móveis, controladores de dispositivos ou outros equipamentos de campo. Uma mensagem publicada pode ser entregue a muitos assinantes ao mesmo tempo.

Remoção do interesse

Quando um cliente não deseja mais certas mensagens, ele envia um pacote UNSUBSCRIBE. O broker para de encaminhar mensagens de tópicos correspondentes depois de confirmar a solicitação.

Isso permite que as aplicações alterem dinamicamente seu interesse por dados. Por exemplo, um painel pode assinar um prédio enquanto o usuário o visualiza e cancelar a assinatura quando o usuário muda para outro local.

O modelo de publicação/assinatura permite que produtores e consumidores de dados evoluam de forma independente, enquanto o broker gerencia roteamento, comportamento de sessão e controle de entrega.

Níveis de qualidade de serviço

QoS 0: no máximo uma vez

QoS 0 é o nível de entrega mais simples. A mensagem é enviada uma vez e não há confirmação do receptor na camada MQTT. Se a mensagem se perder, o protocolo não a retransmite.

Esse nível é útil para telemetria frequente quando perder uma atualização ocasional é aceitável. Por exemplo, um sensor de temperatura enviando dados a cada poucos segundos talvez não precise que cada leitura chegue.

QoS 1: pelo menos uma vez

QoS 1 exige confirmação. O remetente retransmite a mensagem se não receber confirmação. Isso melhora a confiabilidade da entrega, mas o receptor pode receber mensagens duplicadas.

Aplicações que usam QoS 1 devem estar preparadas para tratar duplicatas. Isso é comum em alarmes, mudanças de estado, comandos e telemetria importante, quando a entrega é mais relevante do que evitar repetição.

QoS 2: exatamente uma vez

QoS 2 usa uma troca mais complexa para garantir que uma mensagem seja entregue exatamente uma vez no nível do protocolo. Ele fornece a garantia de entrega mais forte, mas acrescenta mais sobrecarga e latência.

Esse nível pode ser usado quando o processamento duplicado seria prejudicial. No entanto, muitas implantações reais usam QoS 0 ou QoS 1 porque oferecem melhor equilíbrio entre desempenho e confiabilidade.

Níveis QoS do MQTT mostrando entrega no máximo uma vez pelo menos uma vez e exatamente uma vez
Os níveis QoS permitem que as aplicações escolham diferentes compromissos entre velocidade, confiabilidade, tratamento de duplicatas e sobrecarga do protocolo.

Mensagens retidas e último estado conhecido

Uma mensagem retida é armazenada pelo broker como a mensagem mais recente de um tópico. Quando um novo assinante assina esse tópico, o broker envia imediatamente a mensagem retida para que o assinante veja o estado conhecido mais recente.

Isso é útil para informações de estado, como status online do dispositivo, estado de chave, valor de sensor, versão de configuração, estado de alarme ou modo operacional atual. Sem mensagens retidas, um novo assinante talvez tenha que esperar até a próxima atualização para conhecer a condição atual.

Mensagens retidas devem ser usadas com cuidado. Elas são úteis para estado, mas nem sempre são adequadas para fluxos de eventos. Um evento retido de “porta aberta” pode confundir um novo assinante se já não for verdadeiro. Tópicos de estado e tópicos de eventos devem ser projetados separadamente.

Comportamento de sessão e entrega offline

O MQTT oferece comportamento de sessão que determina o que acontece quando um cliente se desconecta e depois se reconecta. Dependendo da versão do protocolo e da configuração, o broker pode armazenar assinaturas, mensagens em fila e estado de sessão de um cliente.

Isso é útil para dispositivos que dormem, se movem entre redes ou perdem conectividade temporariamente. Quando o dispositivo se reconecta, pode continuar recebendo mensagens que ficaram em fila enquanto estava offline, desde que a política de sessão e as regras de QoS permitam.

A persistência de sessão deve corresponder ao papel do dispositivo. Um sensor alimentado por bateria talvez não precise manter todos os comandos em fila para sempre. Um controlador remoto pode exigir atualizações de configuração em fila. Fila offline em excesso consome recursos do broker, enquanto fila insuficiente pode causar perda de comandos.

Mensagens de testamento para falhas inesperadas

Uma mensagem de testamento permite que um cliente defina uma mensagem que o broker deve publicar se o cliente se desconectar inesperadamente. Isso ajuda outros sistemas a detectar falha de dispositivo, perda de rede ou desligamento anormal.

Por exemplo, um dispositivo pode configurar uma mensagem de testamento em um tópico de status como device/123/status. Se o dispositivo perder energia sem enviar uma desconexão normal, o broker publica a mensagem offline configurada.

Esse recurso é amplamente usado em painéis de monitoramento, sistemas de saúde de dispositivos, telemetria industrial, supervisão de gateways e gestão remota de ativos. Ele oferece uma forma simples de expor desconexões anormais a outras partes do sistema.

Segurança e controle de acesso

Autenticação

O broker deve verificar a identidade do cliente antes de permitir acesso. A autenticação pode usar nome de usuário e senha, certificados de cliente, tokens, credenciais API ou integração com um sistema externo de identidade.

Autenticação fraca pode permitir que dispositivos não autorizados publiquem dados falsos, assinem tópicos sensíveis ou interrompam o ambiente de mensagens.

Autorização

Depois que a identidade é verificada, o broker deve decidir em quais tópicos o cliente pode publicar e quais pode assinar. Um sensor não deve poder publicar comandos para dispositivos não relacionados. Uma aplicação de um locatário não deve receber dados de outro locatário.

Permissões em nível de tópico são essenciais em implantações com muitos dispositivos, muitos locais e múltiplos locatários.

Criptografia

A criptografia TLS protege dados em trânsito entre clientes e o broker. Isso é importante quando mensagens passam por redes públicas, redes celulares, conexões em nuvem ou infraestrutura não confiável.

A criptografia deve ser combinada com gestão de certificados, armazenamento seguro de chaves e provisionamento cuidadoso de clientes. Uma camada de transporte segura não ajuda se credenciais estiverem expostas em firmware ou arquivos de configuração.

Padrões de implantação

Dispositivo para nuvem

Em muitos sistemas IoT, sensores e gateways publicam dados em um broker de nuvem. Aplicações em nuvem então armazenam, visualizam, analisam e agem sobre os dados. Esse modelo é comum em edifícios inteligentes, gestão de energia, monitoramento de frotas e plataformas de equipamentos remotos.

As principais preocupações de projeto são segurança, resiliência de rede, identidade de dispositivos, volume de mensagens e escalabilidade no lado da nuvem.

Agregação por gateway de borda

Um gateway de borda pode coletar dados de dispositivos locais e publicar dados resumidos ou filtrados em um broker central. Ele também pode assinar tópicos de comando e encaminhar instruções aos equipamentos locais.

Isso reduz largura de banda, melhora o controle local e permite que o local mantenha algumas funções mesmo quando a conexão com a nuvem não está disponível.

Broker local para sistemas de site

Algumas implantações usam um broker local dentro de uma fábrica, prédio, laboratório, campus ou sala de controle. Dispositivos e aplicações trocam dados localmente com baixa latência e menor dependência de redes externas.

Um broker local pode depois fazer ponte de dados selecionados para uma plataforma em nuvem ou empresarial. Isso dá aos projetistas mais controle sobre o fluxo de dados e a dependência de rede.

Padrões de implantação MQTT incluindo dispositivo para nuvem gateway de borda broker local e integração empresarial
Padrões comuns incluem mensagens de dispositivo para nuvem, agregação em gateway de borda, brokers locais de site e integração com plataformas empresariais.

Aplicações em sistemas conectados

Monitoramento industrial

Fábricas e instalações de utilidades usam MQTT para coletar status de equipamentos, dados de sensores, mensagens de alarme, valores de energia, leituras de temperatura, dados de vibração e métricas de produção. O protocolo se ajusta a ambientes em que muitos dispositivos enviam pequenas mensagens para plataformas supervisórias.

Implantações industriais devem considerar segmentação de rede, redundância de broker, seleção de QoS, estado retido e provisionamento seguro de dispositivos.

Edifícios inteligentes

Sistemas prediais podem usar o protocolo para conectar iluminação, HVAC, controle de acesso, sensores de ocupação, medidores, elevadores, painéis de sala e dashboards. A estrutura de tópicos pode refletir a hierarquia de prédio, andar, sala e dispositivo.

Isso facilita organizar dados e ajuda regras de automação a assinar apenas eventos ou estados relevantes.

Energia e medição

Plataformas de energia podem usar MQTT para coletar leituras de medidores, dados de inversores, status de baterias, informações de carga e telemetria relacionada à rede. Mensagens leves são úteis quando muitos dispositivos reportam pequenos valores periodicamente.

Como sistemas de energia podem afetar cobrança, controle ou segurança, autenticação e integridade das mensagens devem ser tratadas com cuidado.

Veículos conectados e mobilidade

Plataformas veiculares, estações de recarga, sistemas de frota e serviços de mobilidade podem usar o protocolo para telemetria, atualizações de localização, diagnósticos, alertas e funções de controle remoto.

Redes móveis podem ser instáveis, portanto tratamento de sessão, lógica de reconexão e projeto eficiente da carga útil são importantes.

Consumo e automação residencial

Sistemas de automação residencial usam MQTT para conectar sensores, interruptores, luzes, termostatos, câmeras, hubs e regras de automação. O modelo de publicação/assinatura facilita que um evento de sensor acione várias ações.

Em implantações domésticas, nomes simples de tópicos e configuração segura do broker local são importantes para evitar confusão e acesso não autorizado.

Considerações de desempenho e escalabilidade

O tamanho da mensagem deve ser mantido razoável. O MQTT é eficiente para mensagens pequenas, mas não é ideal para arquivos muito grandes ou fluxos pesados de mídia. Cargas grandes podem aumentar uso de memória do broker, congestionamento de rede e atraso de processamento.

O projeto de tópicos afeta o desempenho. O uso excessivo de assinaturas com curingas amplos pode aumentar a carga do broker, pois muitas mensagens precisam ser comparadas e entregues a muitos clientes. Uma hierarquia clara ajuda os sistemas a escalar de forma mais previsível.

A quantidade de conexões é outro fator. Um broker atendendo milhares ou milhões de clientes deve lidar com tráfego keepalive, autenticação, estado de sessão, mensagens retidas, mensagens em fila e limites de rede. Escalar pode exigir clustering, balanceamento de carga, agregação na borda ou particionamento de tópicos.

O nível QoS também afeta o desempenho. QoS 2 oferece semântica de entrega mais forte, mas cria mais troca de pacotes. Para telemetria de alto volume, usar QoS 0 ou QoS 1 com lógica no nível da aplicação pode ser mais prático.

Erros comuns de projeto

Nomes de tópicos pouco claros

Nomes de tópicos aleatórios ou inconsistentes dificultam gerenciar permissões, painéis, alertas e análises. Um plano de tópicos deve ser criado antes de uma implantação em grande escala.

Usar mensagens retidas para eventos

Mensagens retidas são melhores para estado atual. Usá-las para eventos únicos pode enganar novos assinantes, pois eles podem receber um evento antigo como se tivesse acabado de ocorrer.

Sem tratamento de duplicatas

QoS 1 pode entregar duplicatas. As aplicações devem usar carimbos de tempo, IDs de mensagem, números de sequência ou processamento idempotente quando mensagens duplicadas puderem causar problemas.

Gestão fraca de credenciais

Senhas compartilhadas codificadas, IDs de cliente reutilizados e certificados sem proteção podem criar riscos sérios de segurança. Cada dispositivo deve ter uma identidade gerenciável e um caminho de revogação.

Ignorar falha do broker

O broker é central na arquitetura. Se ele falhar e não houver redundância ou plano de recuperação, a comunicação pode parar. Implantações críticas devem considerar clustering, brokers de backup, projeto de ponte ou comportamento local de contingência.

O MQTT funciona bem quando tópicos, sessões, QoS, estado retido, segurança e capacidade do broker são projetados em conjunto, em vez de configurados como ajustes isolados.

Manutenção e monitoramento

Equipes operacionais devem monitorar CPU do broker, memória, número de conexões, taxa de mensagens, quantidade de mensagens retidas, número de assinaturas, mensagens em fila, falhas de autenticação, conexões derrubadas e latência de rede.

A saúde dos clientes também deve ser visível. Reconexões repetidas, sessões expiradas, IDs de cliente duplicados, taxas anormais de publicação e acesso inesperado a tópicos podem indicar falhas de dispositivo ou problemas de segurança.

Backups de configuração são importantes. Configurações do broker, listas de controle de acesso, certificados, políticas de tópicos, ajustes de ponte e comportamento de estado retido devem ser documentados e recuperáveis.

Perguntas frequentes

O MQTT pode funcionar sobre WebSocket?

Sim. Muitos brokers oferecem suporte a MQTT sobre WebSocket, permitindo que aplicações baseadas em navegador e painéis web se comuniquem por caminhos de transporte amigáveis à web.

Ele é adequado para enviar vídeo grande ou conteúdo de arquivo?

Normalmente não como método principal. Ele é melhor para pequenas mensagens, telemetria, eventos, comandos e atualizações de estado. Arquivos grandes geralmente são transferidos por outros protocolos, com uma mensagem carregando a referência do arquivo.

O que acontece se dois clientes usam o mesmo ID de cliente?

Muitos brokers desconectarão o cliente existente quando um novo cliente se conectar com o mesmo ID. IDs de cliente exclusivos são importantes para comportamento de sessão estável.

Um broker pode se conectar a outro broker?

Sim. Ponte entre brokers ou clustering podem ser usados para trocar tópicos selecionados entre sites, regiões, gateways de borda e plataformas em nuvem, dependendo da capacidade do broker.

Como os nomes de tópicos devem ser planejados?

Use uma hierarquia consistente baseada em site, sistema, dispositivo, tipo de dado e função. Evite nomes aleatórios, informações sensíveis em caminhos de tópicos e dependência excessiva de curingas amplos.

Produtos Recomendados
Catálogo
Atendimento ao cliente Telefone
We use cookie to improve your online experience. By continuing to browse this website, you agree to our use of cookie.

Cookies

This Cookie Policy explains how we use cookies and similar technologies when you access or use our website and related services. Please read this Policy together with our Terms and Conditions and Privacy Policy so that you understand how we collect, use, and protect information.

By continuing to access or use our Services, you acknowledge that cookies and similar technologies may be used as described in this Policy, subject to applicable law and your available choices.

Updates to This Cookie Policy

We may revise this Cookie Policy from time to time to reflect changes in legal requirements, technology, or our business practices. When we make updates, the revised version will be posted on this page and will become effective from the date of publication unless otherwise required by law.

Where required, we will provide additional notice or request your consent before applying material changes that affect your rights or choices.

What Are Cookies?

Cookies are small text files placed on your device when you visit a website or interact with certain online content. They help websites recognize your browser or device, remember your preferences, support essential functionality, and improve the overall user experience.

In this Cookie Policy, the term “cookies” also includes similar technologies such as pixels, tags, web beacons, and other tracking tools that perform comparable functions.

Why We Use Cookies

We use cookies to help our website function properly, remember user preferences, enhance website performance, understand how visitors interact with our pages, and support security, analytics, and marketing activities where permitted by law.

We use cookies to keep our website functional, secure, efficient, and more relevant to your browsing experience.

Categories of Cookies We Use

Strictly Necessary Cookies

These cookies are essential for the operation of the website and cannot be disabled in our systems where they are required to provide the service you request. They are typically set in response to actions such as setting privacy preferences, signing in, or submitting forms.

Without these cookies, certain parts of the website may not function correctly.

Functional Cookies

Functional cookies enable enhanced features and personalization, such as remembering your preferences, language settings, or previously selected options. These cookies may be set by us or by third-party providers whose services are integrated into our website.

If you disable these cookies, some services or features may not work as intended.

Performance and Analytics Cookies

These cookies help us understand how visitors use our website by collecting information such as traffic sources, page visits, navigation behavior, and general interaction patterns. In many cases, this information is aggregated and does not directly identify individual users.

We use this information to improve website performance, usability, and content relevance.

Targeting and Advertising Cookies

These cookies may be placed by our advertising or marketing partners to help deliver more relevant ads and measure the effectiveness of campaigns. They may use information about your browsing activity across different websites and services to build a profile of your interests.

These cookies generally do not store directly identifying personal information, but they may identify your browser or device.

First-Party and Third-Party Cookies

Some cookies are set directly by our website and are referred to as first-party cookies. Other cookies are set by third-party services, such as analytics providers, embedded content providers, or advertising partners, and are referred to as third-party cookies.

Third-party providers may use their own cookies in accordance with their own privacy and cookie policies.

Information Collected Through Cookies

Depending on the type of cookie used, the information collected may include browser type, device type, IP address, referring website, pages viewed, time spent on pages, clickstream behavior, and general usage patterns.

This information helps us maintain the website, improve performance, enhance security, and provide a better user experience.

Your Cookie Choices

You can control or disable cookies through your browser settings and, where available, through our cookie consent or preference management tools. Depending on your location, you may also have the right to accept or reject certain categories of cookies, especially those used for analytics, personalization, or advertising purposes.

Please note that blocking or deleting certain cookies may affect the availability, functionality, or performance of some parts of the website.

Restricting cookies may limit certain features and reduce the quality of your experience on the website.

Cookies in Mobile Applications

Where our mobile applications use cookie-like technologies, they are generally limited to those required for core functionality, security, and service delivery. Disabling these essential technologies may affect the normal operation of the application.

We do not use essential mobile application cookies to store unnecessary personal information.

How to Manage Cookies

Most web browsers allow you to manage cookies through browser settings. You can usually choose to block, delete, or receive alerts before cookies are stored. Because browser controls vary, please refer to your browser provider’s support documentation for details on how to manage cookie settings.

Contact Us

If you have any questions about this Cookie Policy or our use of cookies and similar technologies, please contact us at support@becke.cc .