Todos os produtos
Search
Central de documentação

ApsaraMQ for RocketMQ:Redefinir consumer offsets

Última atualização: Sep 09, 2026

Redefinir um consumer offset altera a posição atual de consumo de um assinante. Se um consumidor falhar ou processar dados incorretos, redefina o consumer offset para retornar a uma posição anterior e reiniciar o consumo. Alternativamente, mova a posição de consumo para o offset mais recente para ignorar temporariamente mensagens acumuladas.

Informações básicas

ApsaraMQ for RocketMQ utiliza consumer offsets para gerenciar o progresso do consumo de mensagens. Após o processamento de uma mensagem pelo consumidor, ela não é excluída imediatamente da fila. ApsaraMQ for RocketMQ mantém um registro de consumo para cada grupo. Esse registro, conhecido como consumer offset, indica o offset da mensagem mais recente consumida pelos consumidores do grupo em um tópico específico.

Quando um cliente consumidor fica offline e retorna, ele retoma o processamento das mensagens com base no progresso de consumo salvo no servidor.

Se o consumo apresentar anomalias ou se o consumer offset atual estiver incorreto, ajuste o progresso de consumo redefinindo o consumer offset.

ApsaraMQ for RocketMQ permite redefinir consumer offsets das seguintes formas:

  • Start Consumption from Latest Offset

    Os consumidores que processam mensagens em um tópico específico ignoram todas as mensagens acumuladas e iniciam o consumo a partir da mensagem mais recente enviada após a operação de redefinição.

  • Start Consumption from Offset Corresponding to Specified Point in Time

    • Os consumidores processam mensagens a partir do consumer offset correspondente ao horário especificado, independentemente de essas mensagens terem sido consumidas anteriormente.

    • O intervalo de tempo selecionável varia entre os horários de criação da mensagem mais antiga e da mais recente armazenadas no tópico.

    • Ao redefinir para um consumer offset em um ponto específico no tempo, o servidor localiza automaticamente o consumer offset correspondente mais próximo.

Cenários

  • Limpeza de acúmulo de mensagens: caso o desempenho de um sistema de consumo downstream seja insuficiente ou a velocidade de consumo seja menor que a de produção, muitas mensagens podem se acumular. Se for possível descartar essas mensagens acumuladas, redefina o consumer offset para uma posição específica. Isso permite contornar as mensagens acumuladas e reduzir a pressão de processamento no sistema downstream.

  • Retrocesso para processamento corretivo: quando a lógica de negócios de consumo apresenta falhas e as mensagens são processadas incorretamente, pode ser necessário reconsumi-las. Para isso, redefina o consumer offset para uma posição histórica e habilite o retrocesso do consumo.

Observações de uso

  • A redefinição de um consumer offset aplica-se ao consumer offset de um grupo especificado para um tópico de destino. Ela não afeta o progresso de consumo de outros grupos assinantes do mesmo tópico.

  • Não há suporte para redefinição de consumer offsets no modo de consumo por broadcasting.

  • ApsaraMQ for RocketMQ oferece suporte à redefinição de consumer offsets apenas para grupos que utilizam o protocolo TCP, e não para grupos que usam o protocolo HTTP.

  • O recurso de redefinição de consumer offset atua somente sobre mensagens visíveis aos consumidores. Não é possível redefinir mensagens agendadas ou aquelas aguardando nova tentativa.

  • Só é possível redefinir consumer offsets quando os consumidores estão online.

Procedimento

  1. Faça login no console do ApsaraMQ for RocketMQ. No painel de navegação à esquerda, clique em Instances.

  2. Na barra de navegação superior, selecione uma região, como China (Hangzhou). Na página Instances, clique em nome da instância que deseja gerenciar.

  3. No painel de navegação à esquerda, clique em Groups. Em seguida, clique na aba TCP.

  4. Localize o ID do grupo cujo consumer offset você deseja redefinir. Na coluna Actions, clique em More e selecione Reset Consumer Offset no menu suspenso.

  5. No painel Reset Consumer Offset, selecione o tópico de destino e o método de redefinição e clique em OK.

    Aviso

    Se você selecionar Start Consumption from Latest Offset, todas as mensagens acumuladas para o ID do grupo no tópico especificado serão limpas. Essa operação leva aproximadamente 2 a 3 minutos para entrar em vigor. Não repita a operação. Durante esse período, todos os consumidores da aplicação pausam o consumo por 2 a 3 minutos. Tenha cautela se sua aplicação for sensível a latência.

    • Start Consumption from Latest Offset: ao escolher esta opção, os consumidores do grupo ignoram todas as mensagens acumuladas no tópico especificado e iniciam o consumo a partir da mensagem mais recente.

    • Start Consumption from Offset Corresponding to Specified Point in Time: ao escolher esta opção, um controle de seleção de hora é exibido. Especifique um ponto no tempo. Os consumidores começam a consumir as mensagens enviadas após esse horário, independentemente de terem sido consumidas anteriormente.

  6. Na caixa de diálogo Prompt, confirme as informações e clique em OK.

Perguntas frequentes

O que fazer se a redefinição do consumer offset falhar com ambos os métodos?

  1. Verifique se você está utilizando o consumo por clustering. O modo de consumo por broadcasting não oferece suporte à redefinição de consumer offsets.

  2. Confirme se o consumidor está online. Só é possível redefinir consumer offsets quando os consumidores estão online.

  3. Verifique a versão do SDK. Esse problema pode ocorrer se a versão do SDK estiver desatualizada. Recomendamos atualizar o SDK para a versão mais recente. Por exemplo, a versão do SDK do cliente TCP para Java deve ser 1.8.0.Final ou posterior. Para mais informações, consulte Version Guide.

Por que algumas mensagens não são redefinidas após redefinir o consumer offset para ignorar mensagens acumuladas?

O recurso de redefinição de consumer offset não se aplica a mensagens em estado de nova tentativa. Portanto, um pequeno número de mensagens aguardando retry ainda pode ser entregue após a redefinição.

Qual é a mensagem mais antiga que os consumidores podem reconsumir ao redefinir o consumer offset?

Ao redefinir um offset para um ponto específico no tempo, o horário mais antigo disponível corresponde ao momento em que a primeira mensagem do tópico foi armazenada. Instâncias da série 4.x do ApsaraMQ for RocketMQ armazenam mensagens por no máximo 3 dias. Mensagens com mais de 3 dias são excluídas do tópico.

Portanto, os consumidores podem reconsumir mensagens de até 3 dias atrás ao redefinir o consumer offset.

Referências

Além do console, o ApsaraMQ for RocketMQ permite redefinir consumer offsets por meio de chamadas de API.

Reset Group ID Consumer Offset