Este tópico descreve os conceitos principais do ApsaraMQ for MQTT e do protocolo Message Queuing Telemetry Transport (MQTT). Os termos estão organizados em quatro categorias: conceitos centrais do produto, rede, protocolo e termos específicos de soluções.
Conceitos centrais
Os termos a seguir são específicos do ApsaraMQ for MQTT. Se você já conhece o protocolo MQTT, comece por aqui para entender as particularidades deste produto.
Instância
Uma instância é uma entidade de serviço do ApsaraMQ for MQTT que você adquire. Cada instância possui uma URL de endpoint globalmente única. Para começar a usar o ApsaraMQ for MQTT, crie uma instância na região desejada e conecte-se pelo endpoint atribuído. Para obter instruções de configuração, consulte Introdução ao ApsaraMQ for MQTT.
Broker do ApsaraMQ for MQTT
Nó de servidor que gerencia as interações do protocolo MQTT. O broker roteia mensagens entre clientes do ApsaraMQ for MQTT e troca mensagens com o ApsaraMQ for RocketMQ.
Cliente do ApsaraMQ for MQTT
Nó móvel que se conecta a um broker do ApsaraMQ for MQTT para publicar ou assinar mensagens.
Client ID
Identificador globalmente único para cada conexão de cliente. Se um cliente tentar se conectar usando um Client ID já em uso, a conexão será rejeitada.
O Client ID segue o formato <GroupID>@@@<DeviceID> e deve atender aos seguintes requisitos:
Comprimento máximo: 64 caracteres
Não deve conter caracteres não imprimíveis
Para a lista completa de restrições, consulte Limites.
Group ID
Identificador que representa uma classe de dispositivos com as mesmas características e lógica. Por exemplo, todos os sensores de temperatura em uma implantação podem compartilhar um único Group ID. Crie os Group IDs no console do ApsaraMQ for MQTT antes de conectar os clientes.
Device ID
Identificador único atribuído a cada dispositivo individual. Cada Device ID deve ser globalmente único. Utilize, por exemplo, o número de série de um sensor como Device ID.
Message ID
Identificador globalmente único que o ApsaraMQ for MQTT atribui automaticamente a cada mensagem. Utilize os Message IDs para rastrear caminhos de entrega e solucionar problemas. Para mais detalhes, consulte Consultar rastreamentos de mensagens.
Tópico pai
Tópico de primeiro nível na hierarquia de tópicos do ApsaraMQ for MQTT. O MQTT utiliza um modelo de publicação-assinatura no qual toda mensagem pertence a um tópico. Crie os tópicos pais no console do ApsaraMQ for MQTT antes de publicar ou assinar.
Subtópico
Tópico de segundo ou terceiro nível subordinado a um tópico pai. Diferentemente dos tópicos pais, os subtópicos não precisam ser criados no console. Especifique-os diretamente no código usando o seguinte formato:
<Parent topic>/<Level-2 topic>/<Level-3 topic>
Por exemplo: SendMessage/demo/producer
O comprimento combinado do tópico pai e de todos os níveis de subtópicos não deve exceder 64 caracteres. Exceder esse limite causa exceções no cliente.
Mensagem P2P
Tipo de mensagem ponto a ponto fornecido pelo ApsaraMQ for MQTT como extensão do protocolo MQTT padrão. As mensagens P2P são entregues diretamente a um cliente específico, sem exigir uma assinatura correspondente no destinatário. Para mais detalhes, consulte Mensagens P2P (MQTT).
Regra
Recurso que permite a troca de dados entre o ApsaraMQ for MQTT e outros produtos da Alibaba Cloud. Existem três tipos de regras disponíveis:
|
Tipo de regra |
Descrição |
|
Regra de entrada de dados |
Lê dados de outro produto da Alibaba Cloud e os envia para um cliente do ApsaraMQ for MQTT via protocolo MQTT. Permite usar a API do produto de origem para enviar dados aos clientes MQTT. Consulte Entrada de dados de outros produtos de nuvem. |
|
Regra de saída de dados |
Exporta mensagens de um cliente do ApsaraMQ for MQTT para outro produto da Alibaba Cloud. Permite usar a API do produto de destino para consumir mensagens MQTT. Consulte Saída de dados para outros produtos de nuvem. |
|
Regra de notificação de status online/offline do cliente |
Encaminha eventos de conexão e desconexão de clientes para outro produto da Alibaba Cloud para monitoramento ou processamento. Consulte Saída de dados para eventos online e offline de clientes do ApsaraMQ for MQTT. |
Rede
Endpoint
URL que os clientes utilizam para se conectar a uma instância do ApsaraMQ for MQTT. Dois tipos de endpoints estão disponíveis:
Endpoints públicos: Destinados a terminais móveis e dispositivos externos.
Endpoints internos: Indicados para serviços executados na mesma região da Alibaba Cloud.
Além do protocolo MQTT padrão na porta 1883, o ApsaraMQ for MQTT suporta criptografia Secure Sockets Layer (SSL) e conexões WebSocket. Uma URL de endpoint é atribuída automaticamente ao criar uma instância. Para detalhes de configuração, consulte Introdução ao ApsaraMQ for MQTT.
Protocolo
MQTT
O Message Queuing Telemetry Transport (MQTT) é um protocolo de mensagens padrão do setor para cenários de Internet das Coisas (IoT) e Internet móvel. Esse protocolo é adequado para transmissão de dados entre terminais móveis. O ApsaraMQ for MQTT oferece suporte nativo a este protocolo.
QoS
A Qualidade de Serviço (QoS) define a garantia de entrega para cada mensagem. A QoS é configurada de forma independente no lado do remetente e no lado do consumidor:
QoS do remetente: Controla a confiabilidade da entrega do remetente até o broker do ApsaraMQ for MQTT.
QoS do consumidor: Controla a confiabilidade da entrega do broker até o consumidor.
Três níveis de QoS estão disponíveis:
|
Nível |
Garantia |
Caso de uso típico |
|
QoS 0 |
Entrega no máximo uma vez. As mensagens podem ser perdidas. |
Dados de alta frequência em que perdas ocasionais são aceitáveis, como leituras periódicas de sensores nas quais a próxima leitura substitui uma anterior perdida. |
|
QoS 1 |
Entrega pelo menos uma vez. A chegada da mensagem é garantida, mas podem ocorrer duplicações. |
Dados em que duplicatas eventuais são toleráveis, como atualizações de status de dispositivos. Trate as duplicações no nível da aplicação, se necessário. |
|
QoS 2 |
Entrega exatamente uma vez. A mensagem chega uma única vez, sem repetições. |
Dados críticos que não podem ser perdidos nem duplicados, como eventos de faturamento ou alertas de segurança. |
cleanSession
A flag cleanSession no protocolo MQTT controla se um cliente consumidor mantém o estado da sessão entre conexões. Essa configuração é independente da configuração do remetente.
Dispositivos IoT frequentemente se desconectam devido à instabilidade da rede ou limitações de energia. Sem sessões persistentes, um cliente que se reconecta perderia suas assinaturas e deixaria de receber mensagens enviadas durante o período offline. A flag cleanSession resolve essa questão oferecendo dois modos:
**
cleanSession=true**: O broker descarta qualquer estado de sessão anterior quando o cliente se reconecta. O cliente reinicia sem assinaturas e sem mensagens offline enfileiradas.**
cleanSession=false**: O broker preserva as assinaturas do cliente e enfileira as mensagens enviadas enquanto ele estava offline. O cliente deve processar essas mensagens pendentes após a reconexão.
Uso combinado de QoS e cleanSession
A combinação da QoS do consumidor com a flag cleanSession determina o comportamento de entrega das mensagens:
|
Nível de QoS |
cleanSession=true |
cleanSession=false |
|
QoS 0 |
Sem mensagens offline. Apenas uma tentativa de envio para mensagens online. |
Mensagens offline disponíveis. Apenas uma tentativa de envio para mensagens online. |
|
QoS 1 |
Sem mensagens offline. Entrega garantida para mensagens online. |
Mensagens offline disponíveis. Entrega garantida para todas as mensagens. |
|
QoS 2 |
Sem mensagens offline. Entrega e recebimento garantidos apenas uma vez para mensagens online. |
Não suportado. |
Observe as seguintes regras:
A flag
cleanSessiondeve permanecer a mesma para todas as conexões de um determinado cliente. Alterá-la entre conexões pode causar interpretação incorreta das mensagens offline.O ApsaraMQ for MQTT não suporta
cleanSession=falsepara mensagens QoS 2. Se um cliente assinar com QoS 2, a configuraçãocleanSession=falsenão terá efeito.Para mensagens P2P, o comportamento da flag
cleanSessioné definido pela configuração do cliente receptor.A configuração de QoS e cleanSession é suportada apenas por SDKs do lado do cliente, não por SDKs do lado do servidor.
Soluções
Os termos a seguir aplicam-se a arquiteturas de soluções específicas construídas sobre o ApsaraMQ for MQTT.
Comunicação em Tempo Real (RTC)
Método de comunicação em rede para voz e vídeo. Os casos de uso comuns incluem chamadas de voz, chamadas de vídeo e videoconferências.
Servidor RTC
Serviço de canal de mídia de áudio e vídeo fornecido pelo Alibaba Cloud Real-Time Communication (RTC).
Servidor de gerenciamento de serviços de áudio e vídeo
Nó de gerenciamento em um sistema RTC, também conhecido como serviço de gerenciamento de áudio e vídeo, que controla o ciclo de vida de todas as sessões RTC. Construa e implante esse serviço por conta própria, geralmente na infraestrutura da Alibaba Cloud.
Aplicativo móvel de áudio e vídeo
Aplicação do usuário final em um sistema RTC, também conhecida como aplicativo de terminal. Os usuários interagem com este app para iniciar ou participar de chamadas de áudio e vídeo.
Smart AP
Dispositivo de rede, como um roteador inteligente, que suporta programação de aplicações. Os Smart APs gerenciam tanto o acesso à Internet quanto o controle de dispositivos da Rede Local (LAN).
Etiqueta digital de preço
Tela eletrônica instalada em locais como shoppings e supermercados. As etiquetas digitais de preço conectam-se a nós Smart AP por meio de protocolos sem fio, como Bluetooth ou ZigBee.
Serviço de gerenciamento de etiquetas digitais de preço
Serviço de backend responsável por gerenciar o conteúdo exibido nas etiquetas digitais de preço. Executa tarefas como atualizações de preços e rastreamento de solicitações de alteração.
RDS
O ApsaraMQ for MQTT integra-se ao Alibaba Cloud Relational Database Service (RDS), um serviço de banco de dados online estável, confiável e escalável, para persistir alterações de status em tarefas como mudanças de preços em soluções como sistemas de etiquetas digitais.
Log Service
O ApsaraMQ for MQTT integra-se ao Alibaba Cloud Log Service para armazenar todos os logs de operações, permitindo auditoria e rastreabilidade em soluções como sistemas de etiquetas digitais de preço.