Todos os produtos
Search
Central de documentação

ApsaraMQ for RocketMQ:Subscriptions

Última atualização: Jun 27, 2026

Uma assinatura é um conjunto de regras de filtro e configurações de status que um grupo de consumidores utiliza para receber e processar mensagens no ApsaraMQ for RocketMQ.

Os grupos de consumidores registram assinaturas dinamicamente no servidor. Durante a entrega de mensagens, o servidor compara as mensagens com as regras de filtro da assinatura e rastreia o progresso do consumo.

Uma assinatura controla:

  • Escopo das mensagens: defina quais mensagens dentro de um tópico são entregues ao grupo de consumidores.

  • Progresso do consumo: representa o registro no servidor sobre quais mensagens já foram consumidas. O ApsaraMQ for RocketMQ persiste o progresso do consumo por padrão. Se um consumidor ficar offline e se reconectar, ele retomará o processamento do ponto em que parou.

Relações entre tópicos e grupos de consumidores

Um tópico, vários grupos de consumidores

O ApsaraMQ for RocketMQ oferece suporte a assinaturas de um para muitos. Vários grupos de consumidores podem assinar o mesmo tópico de forma independente, e cada grupo pode consumir todas as mensagens ou apenas um subconjunto delas.

One topic subscribed by multiple consumer groups

Um grupo de consumidores, vários tópicos

Um único grupo de consumidores pode assinar vários tópicos. Cada assinatura de tópico é independente e pode ter suas próprias regras de filtro.

Por exemplo, o grupo de consumidores Grupo A assina tanto o Tópico A quanto o Tópico B. As duas assinaturas são separadas — alterar uma não afeta a outra.

One consumer group subscribing to multiple topics

Modos de consumo

O modo de consumo determina como as mensagens são distribuídas para os consumidores dentro de um grupo.

Modo

Aplica-se a

Comportamento

CLUSTERING

Tópicos padrão (não Lite)

Cada mensagem é entregue a um consumidor no grupo com base no balanceamento de carga.

LITE_SELECTIVE

Apenas tópicos Lite

Cada consumidor no grupo pode assinar um conjunto diferente de tópicos Lite.

Filtragem de mensagens

A filtragem de mensagens está disponível no modo CLUSTERING. Utilize regras de filtro para restringir as mensagens entregues a um grupo de consumidores, indo além das assinaturas no nível do tópico.

Tipos de filtro

Tipo

Descrição

Filtragem por TAG

Corresponde a mensagens com base no texto completo das strings de tag.

Filtragem SQL92

Corresponde a atributos de mensagem com base em expressões SQL92.

Expressões de filtro

As expressões de filtro definem os critérios de correspondência para cada tipo de filtro. Para detalhes sobre a sintaxe, consulte Sintaxe de expressão de filtro.

Restrições de assinatura por modo

Modo CLUSTERING: mantenha as assinaturas consistentes em todo o grupo

No modo CLUSTERING, todos os consumidores no mesmo grupo de consumidores devem usar relações de assinatura e lógica de consumo idênticas. Assinaturas incompatíveis causam conflitos de consumo, o que pode levar a um consumo anormal de algumas mensagens.

Correto — ambos os consumidores assinam o mesmo tópico com a mesma tag:

// Consumer c1
Consumer c1 = ConsumerBuilder.build(groupA);
c1.subscribe(topicA,"TagA");
// Consumer c2
Consumer c2 = ConsumerBuilder.build(groupA);
c2.subscribe(topicA,"TagA");

Incorreto — consumidores no mesmo grupo assinam o mesmo tópico com tags diferentes:

// Consumer c1
Consumer c1 = ConsumerBuilder.build(groupA);
c1.subscribe(topicA,"TagA");
// Consumer c2
Consumer c2 = ConsumerBuilder.build(groupA);
c2.subscribe(topicA,"TagB");

Modo LITE_SELECTIVE: assinaturas flexíveis por consumidor

No modo LITE_SELECTIVE, os consumidores dentro do mesmo grupo podem assinar conjuntos diferentes de tópicos Lite. Por exemplo, o Consumidor 1 assina LiteTopic1 e LiteTopic2, enquanto o Consumidor 2 assina LiteTopic3 e LiteTopic4.

É possível adicionar ou remover tópicos Lite do conjunto de assinaturas de cada consumidor em tempo real.

LITE_SELECTIVE mode -- different consumers subscribe to different Lite topics