Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Assinaturas compartilhadas no Grade de Eventos do Azure MQTT Broker são um padrão de mensagens que permite que vários clientes consumam mensagens de uma única assinatura de tópico como um grupo, permitindo que o agente distribua mensagens entre clientes de maneira balanceada de carga. Em vez de cada assinante receber cada mensagem, apenas um cliente dentro do grupo compartilhado recebe cada mensagem, melhorando a escalabilidade e a taxa de transferência para sistemas de processamento de back-end.
Como funcionam as assinaturas compartilhadas
Em uma assinatura MQTT padrão, cada cliente inscrito recebe uma cópia de cada mensagem. Com assinaturas compartilhadas, o agente trata um grupo de clientes como um único assinante lógico e distribui mensagens entre eles.
- Cada mensagem de aplicativo correspondente ao filtro compartilhado é entregue a apenas uma sessão ativa dentro do grupo
- A distribuição normalmente é balanceada por carga de maneira aleatória dentro do grupo
- Uma sessão de cliente pode conter assinaturas compartilhadas e não compartilhadas simultaneamente
- Vários grupos podem assinar o mesmo tópico de forma independente
Formato de tópico de assinatura compartilhada
As assinaturas compartilhadas usam o seguinte formato:
$share/{group-name}/{topic-filter}
Componentes:
-
$share→ identifica uma assinatura compartilhada -
{group-name}→ grupo de consumidores lógicos -
{topic-filter}tópico → ou assinatura curinga
Exemplo:
$share/order-processors/retail/orders/#
Características principais
- Consumo com balanceamento de carga: as mensagens são distribuídas entre clientes no mesmo grupo para garantir um processamento eficiente.
- Escalabilidade horizontal: os consumidores podem escalar horizontalmente de forma independente sem afetar os editores.
- Grupos de consumidores independentes: vários grupos compartilhados recebem as mesmas mensagens de forma independente durante o balanceamento interno.
- Suporte a assinatura mista: um cliente pode manter assinaturas compartilhadas e não compartilhadas na mesma sessão.
Cenário de exemplo: processamento de pedidos de varejo
Considere um cenário de processamento de pedidos de varejo usando o Broker MQTT da Grade de Eventos.
- Tópico:
retail/orders - Grupo compartilhado:
order-workers - Clientes: Worker1, Worker2, Worker3
Fluxo:
- Os pedidos são publicados em
retail/orders - Todos os trabalhadores assinam:
$share/order-workers/retail/orders - O MQTT Broker do Event Grid distribui:
- Pedido 1 → Trabalhador1
- Pedido 2 → Trabalhador2
- Pedido 3 → Trabalhador3
Cada ordem é processada uma vez, enquanto o sistema se dimensiona horizontalmente.
Comportamento e restrições de protocolo
Suporte à versão do MQTT
- Recurso exclusivo do MQTT 5
- Os clientes MQTT 3.1.1 que tentarem
$share/...serão desconectados.
Semântica de entrega de mensagens
- Cada mensagem é entregue a um cliente por grupo
- A entrega segue a semântica de pelo menos uma vez (QoS 1)
Ordenação de mensagens
- Nenhuma garantia de ordenação estrita entre os membros do grupo
Comportamento da sessão
- A expiração da sessão afeta a entrega de mensagens:
- Se um cliente se desconectar e a sessão expirar, as mensagens poderão ser reatribuídas
- Sessões persistentes melhoram a confiabilidade
Casos de uso no Corretor MQTT do Event Grid
As assinaturas compartilhadas são ideais para:
- Processamento de telemetria de IoT de alta capacidade: distribua telemetria ou eventos por vários serviços de processamento.
- Pools/microsserviços de trabalho de back-end: permitir que os serviços sem estado processem eventos sem duplicação.
- Consumidores de Namespace Unificado (UNS): consomem fluxos de dados industriais com alta taxa de transferência de forma eficiente.
Quando usar assinaturas compartilhadas
Use assinaturas compartilhadas quando:
- Você precisa de processamento de mensagens paralelas.
- Um único consumidor não pode lidar com a carga.
- Você deseja arquiteturas escalonáveis e resilientes.
- Você deseja evitar a criação de balanceamento de carga personalizado.
Conteúdo relacionado
- Visão geral do agente MQTT
- Recursos MQTT compatíveis com o broker MQTT do Grade de Eventos do Azure
- Publicar e assinar mensagens MQTT