MQTT gerenciado na nuvem

Alternativa ao HiveMQ Cloud: um Método Justo para Comparar Brokers MQTT Gerenciados

Um método neutro para comparar brokers MQTT gerenciados: o que verificar em suporte ao protocolo, limites, recursos industriais, ferramentas e portabilidade, além de um script de teste que roda sem alterações contra qualquer broker baseado no padrão.

Ilustração de um quadro comparativo para escolher uma alternativa ao HiveMQ Cloud, com vários brokers MQTT gerenciados avaliados pelos mesmos critérios
Rode isso no seu próprio broker MQTTTenha um broker MQTT privado e gerenciado no plano Free e comece com exemplos de código prontos.
Teste grátis Exemplos de código Sem cartão de crédito

Se você está pesquisando uma alternativa ao HiveMQ Cloud, o mais útil que você pode ter é uma forma justa e repetível de comparar brokers MQTT gerenciados. Este artigo oferece esse método: os critérios que importam, como testar cada um por conta própria e qual é a posição da ConnectMQ em cada ponto, para que você decida com base nos seus requisitos e não em páginas de marketing.

O HiveMQ em contexto

O HiveMQ é um dos nomes mais conhecidos do MQTT. A empresa oferece um broker corporativo e um broker MQTT gerenciado na nuvem, e publicou materiais educativos sobre o protocolo amplamente lidos. Muitos engenheiros aprenderam MQTT com esses recursos. Procurar uma alternativa não significa que haja algo de errado com o HiveMQ; as equipes comparam provedores por vários motivos, como adequação do modelo de preços, opções de implantação, localização dos dados, recursos industriais ou simplesmente due diligence antes de um contrato longo.

Planos, limites e recursos de qualquer serviço gerenciado mudam com o tempo. Trate qualquer comparação, inclusive esta, como ponto de partida e confira a documentação e os termos atuais de cada fornecedor antes de decidir.

O método de comparação

Avalie cada provedor pelos mesmos critérios. A coluna da direita mostra as nossas próprias capacidades documentadas, para que você tenha um ponto de referência concreto.

Critério O que verificar em qualquer provedor ConnectMQ
Versões do protocolo MQTT 3.1.1 e 5.0, e quais recursos do MQTT 5 estão implementados MQTT 3.1.1 e 5.0
Transportes TCP, TLS, WebSocket, Secure WebSocket e suas portas 1883, 8883 (TLS), 8083 (WS), 8084 (WSS, caminho /mqtt)
Plano gratuito Número de conexões, QoS, tamanho de mensagem, se exige cartão Serverless (Free): até 25 conexões, QoS até 1, mensagens de 256 KB, sem cartão de crédito
Plano compartilhado pago Limites e recursos liberados Serverless (Paid): até 1.000 conexões, QoS 2, mensagens de 1 MB, shared subscriptions
Opções de isolamento Clusters dedicados, rede privada, sua própria conta de nuvem Dedicated, BYOC, Self Managed Enterprise
Autenticação Usuário/senha, certificados de cliente, opções baseadas em token Usuário, senha e client ID gerados, com o client ID vinculado às credenciais
Dados industriais Reconhecimento de Sparkplug B, suporte a Unified Namespace Detecta topics ISA-95/UNS, decodifica Sparkplug B e o republica em topics ISA-95
Ferramentas integradas Cliente web, navegador de topics, dashboards, alertas Cliente no navegador, explorador de topics ao vivo, dashboard, visão de dispositivos ISA-95, alertas por limite
Integrações Conectores nativos para bancos de dados, streams, serviços de nuvem Por meio de clientes MQTT externos como Node-RED, Telegraf ou seus próprios assinantes
Garantias operacionais SLA publicado, termos de suporte, página de status Consulte os termos atuais com o fornecedor

Repare na linha de integrações. Alguns provedores incluem conectores de dados nativos ou extensões; o nosso broker deliberadamente se mantém enxuto e deixa você integrar com clientes MQTT padrão. Se isso é uma força ou uma lacuna depende de você já usar ferramentas como Node-RED ou um pipeline de séries temporais.

Os critérios em mais detalhes

Completude do protocolo

MQTT 3.1.1 e MQTT 5.0 devem ser suportados. Se você pretende usar recursos do MQTT 5 como shared subscriptions, message expiry, topic aliases ou response topics, confirme cada um explicitamente no plano que você compraria, e não apenas um "suporte a MQTT 5". O artigo sobre recursos do MQTT 5 explica quais recursos importam para quais casos de uso.

Plano gratuito e degraus de planos

Um plano gratuito só tem valor se permitir testar com dispositivos reais e TLS de verdade. Observe o número de conexões, o QoS máximo e o tamanho de mensagem, e se dá para fazer upgrade sem mudar hostnames ou credenciais. O guia de plano gratuito de broker MQTT lista o que procurar.

Adequação do modelo de preços

Os provedores cobram por conexões, mensagens, tráfego, tamanho de cluster ou uma combinação disso. Nenhum desses modelos é intrinsecamente melhor; o que importa é como a sua carga de trabalho cresce. Uma frota de muitos sensores silenciosos se comporta de forma muito diferente de poucas máquinas falantes. Modele as conexões e a taxa de mensagens esperadas para o próximo ano e precifique cada provedor contra esse perfil usando os preços publicados atualmente.

Tratamento industrial e de Sparkplug

Se você trabalha na indústria, verifique como o broker trata payloads Sparkplug B. Um broker encaminha os bytes Protobuf de qualquer jeito, mas ferramentas que os decodificam e exibem economizam muita depuração. A ConnectMQ decodifica Sparkplug B (Protobuf ou JSON) e pode republicá-lo em topics ISA-95, por exemplo de spBv1.0/factory1/DDATA/line1/cnc1 para connectmq/factory1/production/line1/cnc1/telemetry. Veja MQTT Sparkplug B e Unified Namespace para o contexto.

Operação e visibilidade

A operação do dia a dia importa mais do que o fluxo de cadastro. Pergunte como você vai ver quais clientes estão conectados, quais topics estão ativos e como são os payloads quando um dispositivo se comporta mal. Um cliente web integrado e um navegador de topics ao vivo podem substituir muitas ferramentas improvisadas durante a depuração. Verifique se o estado das conexões é exposto de uma forma que o seu próprio monitoramento consiga consumir; no nosso broker, por exemplo, o estado de um cliente é publicado em $SYS/broker/connection/{clientId}/state. Por fim, veja como o serviço protege a si mesmo e a você de clientes problemáticos: cotas, proteção contra flood e bloqueio de logins malsucedidos repetidos reduzem o raio de impacto de uma versão de firmware com bug.

Modelo de implantação

Clusters serverless compartilhados são rápidos e baratos para começar. Projetos maiores ou regulados podem precisar de um cluster dedicado isolado, de uma implantação dentro da própria conta de nuvem ou de uma opção autogerenciada. Verifique quais dessas opções cada provedor oferece e, principalmente, se é possível passar de uma para outra sem alterar a configuração dos dispositivos.

Portabilidade

A melhor proteção contra uma decisão errada é a capacidade de mudá-la. Prefira provedores que permitam usar clientes MQTT padrão com recursos padrão, para que uma migração futura altere apenas as configurações de conexão.

Teste qualquer broker com o mesmo script

Execute um teste idêntico contra cada candidato. Este script MQTT.js v5 se conecta com MQTT 5, assina, publica com QoS 1, mede o tempo de ida e volta e exibe o reason code do servidor em caso de falha:

// npm install mqtt
const mqtt = require("mqtt");

const url = process.env.MQTT_URL || "mqtts://broker.connectmq.com:8883";
const topic = process.env.MQTT_TOPIC || "connectmq/demo/a91c/rtt";

const client = mqtt.connect(url, {
  clientId: process.env.MQTT_CLIENT_ID || "eval-a91c-js",
  username: process.env.MQTT_USERNAME,
  password: process.env.MQTT_PASSWORD,
  protocolVersion: 5,
  connectTimeout: 10_000,
});

let sentAt = 0;
let count = 0;

client.on("connect", () => {
  console.log("Connected to", url);
  client.subscribe(topic, { qos: 1 }, (err) => {
    if (err) return console.error("Subscribe failed:", err.message);
    sendNext();
  });
});

function sendNext() {
  sentAt = Date.now();
  client.publish(topic, JSON.stringify({ n: count, t: sentAt }), { qos: 1 });
}

client.on("message", (_topic, payload) => {
  const rtt = Date.now() - sentAt;
  console.log(`Message ${count} round trip: ${rtt} ms`);
  count += 1;
  if (count < 10) setTimeout(sendNext, 500);
  else client.end();
});

client.on("error", (err) => {
  console.error("Error:", err.message, err.code ?? "");
  client.end();
});

Rode-o primeiro contra o servidor MQTT público (gratuito, apenas para testes e protótipos, não para dados de produção) e depois contra o endpoint privado de cada provedor, mudando apenas as variáveis de ambiente:

node rtt.js
MQTT_URL=mqtts://broker.connectmq.com:8883 MQTT_USERNAME=YOUR_USERNAME \
MQTT_PASSWORD=YOUR_PASSWORD MQTT_CLIENT_ID=YOUR_CLIENT_ID \
MQTT_TOPIC=eval/rtt node rtt.js

Execute o teste a partir de onde os seus dispositivos realmente estão. A latência medida no seu escritório diz pouco sobre a latência em um site remoto, como uma mineradora no interior de Minas Gerais.

Um checklist de pontuação

  1. Liste os seus requisitos obrigatórios (por exemplo QoS 2, decodificação de Sparkplug, um cluster dedicado).
  2. Elimine qualquer provedor que não atenda a um requisito obrigatório segundo a documentação atual dele.
  3. Rode o script de teste contra os provedores restantes a partir dos locais dos seus dispositivos.
  4. Conecte um dispositivo ou gateway real por pelo menos um dia e observe as desconexões.
  5. Verifique as ferramentas operacionais: dá para ver topics ao vivo e o estado das conexões sem software extra?
  6. Precifique a carga de trabalho de um ano na tabela de preços atual de cada provedor.
  7. Confirme o caminho de saída: dá para migrar os dispositivos mudando host, porta e credenciais?

Use um broker gratuito como ponto de referência

Como o plano gratuito da ConnectMQ não exige cartão de crédito, ele é uma base fácil para qualquer comparação. Crie um broker Serverless gratuito, rode o script acima e explore os seus topics no portal. Para entender o cenário mais amplo, leia a nossa visão geral de broker MQTT na nuvem, a comparação relacionada de alternativa ao EMQX Cloud e o guia completo sobre o que um broker MQTT gerenciado faz por você. Os detalhes do produto estão em connectmq.com.

Perguntas frequentes

A ConnectMQ é compatível com clientes escritos para o HiveMQ Cloud?

Clientes que usam MQTT 3.1.1 ou 5.0 padrão funcionam com qualquer broker compatível. Normalmente só mudam o host, a porta, as credenciais e o client ID.

Como devo comparar os preços entre provedores de broker MQTT gerenciado?

Modele as conexões e o volume de mensagens esperados para o próximo ano e aplique os preços publicados atualmente por cada provedor. Os modelos de preço diferem, então compare o custo total para a sua carga de trabalho, e não os preços de vitrine.

A ConnectMQ inclui integrações de dados, como conectores de banco de dados?

Não. O broker se mantém focado em MQTT; você integra com ferramentas como Node-RED, Telegraf ou seus próprios assinantes, que se conectam como clientes MQTT.

Onde posso verificar os recursos atuais do HiveMQ Cloud?

Use a documentação oficial e as páginas de preços do HiveMQ, já que planos e limites mudam com o tempo.

Artigos relacionados

Broker MQTT BYOC: Bring Your Own Cloud Explicado

Um broker MQTT BYOC roda na sua conta de nuvem, mas é operado por um provedor. Entenda como o modelo funciona, a divisão de responsabilidades e como preparar a sua conta para ele.

9 min de leitura

Alternativa ao Google Cloud IoT Core: Opções e Migração Após o Encerramento

O Google desativou o Cloud IoT Core em agosto de 2023. Este guia compara as alternativas realistas, mapeia os conceitos do IoT Core para MQTT puro e mostra como mover dispositivos para um broker MQTT gerenciado mantendo os dados fluindo para o Google Cloud.

9 min de leitura

Mensagens MQTT por Segundo: Como Estimar e Medir a Vazão

O planejamento de vazão em MQTT se resume a algumas fórmulas e a uma medição honesta. Aprenda a estimar mensagens de entrada e saída por segundo, considerar os picos e associar o resultado a um plano de broker.

8 min de leitura

Todos os artigos →

Seu broker MQTT privado está a poucos cliques de distância

Crie uma conta, receba as credenciais do seu broker e conecte seu primeiro dispositivo — sem servidores para instalar, atualizar ou escalar.