Todos os produtos
Search
Central de documentação

ApsaraMQ for RocketMQ:Redefinir consumer offsets

Última atualização: Jun 27, 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 oferece as seguintes formas de redefinição de consumer offsets:

  • 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 compreende o período 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 do 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 correção: 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 broadcast.

  • ApsaraMQ for RocketMQ permite a redefinição de consumer offsets apenas para grupos que utilizam o protocolo TCP. Grupos que usam o protocolo HTTP não têm suporte para esse recurso.

  • 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.

  • A redefinição de consumer offsets só é permitida 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 no 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 será redefinido. 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 optar por este método, um controle de seleção de tempo é exibido. Especifique um ponto no tempo para que os consumidores passem a processar as mensagens enviadas após esse horário, independentemente de terem sido consumidas antes.

  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 em ambos os métodos?

  1. Verifique se você está utilizando o consumo por clustering. O modo de consumo por broadcast não suporta a redefinição de consumer offsets.

  2. Confirme se o consumidor está online. A redefinição de consumer offsets só é possível quando os consumidores estão ativos.

  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 detalhes, consulte Guia de versões.

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 selecioná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 retêm mensagens por no máximo 3 dias. Mensagens com mais de 3 dias são excluídas do tópico.

Consequentemente, os consumidores podem reconsumir mensagens de até 3 dias atrás mediante a redefinição do consumer offset.

Referências

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

Redefinir consumer offset do Group ID