Redefina o offset do consumidor para reconsumir mensagens a partir de uma posição anterior ou de um offset de partição específico, ou avance para a posição mais recente para ignorar o acúmulo de mensagens.
Pré-requisitos
Interrompa todos os clientes de consumo. O ApsaraMQ for Kafka não permite redefinir offsets de consumidores ativos.
Após interromper um cliente de consumo, o broker só o considera offline após o período de ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG expirar (padrão: 10.000 ms).
Informações de contexto
O ApsaraMQ for Kafka oferece suporte aos seguintes métodos de redefinição:
Iniciar consumo a partir do offset mais recente: redefine o offset para a posição mais recente e ignora qualquer acúmulo de mensagens.
-
Iniciar consumo a partir de um ponto específico no tempo: redefine o offset para um carimbo de data e hora passado com base no momento em que as mensagens foram armazenadas. Desde que as mensagens permaneçam dentro do período de retenção do Kafka (padrão: 3 dias), selecionar esta opção garante que todas as mensagens a partir do carimbo de data e hora especificado sejam reconsumidas sem nenhuma omissão.
NotaAntes de redefinir o offset, interrompa todos os clientes de consumo e aguarde o período de
ConsumerConfig.SESSION_TIMEOUT_MS_CONFIGexpirar (padrão: 10.000 ms). Isso garante que o broker reconheça todos os consumidores como offline antes que a redefinição entre em vigor. Redefinir offsets do consumidor por partição: redefine os offsets apenas para partições específicas, evitando reconsumir mensagens já processadas corretamente em outras partições.
Esta operação altera apenas o offset do consumidor. Ela não exclui as mensagens acumuladas.
Procedimento
Faça login no console do ApsaraMQ for Kafka.
Na página Overview, selecione uma região na seção Resource Distribution.
Na página Instances, clique no nome da instância de destino.
No painel de navegação à esquerda, clique em Groups.
Na página Groups, clique no Group ID de destino.
-
No painel Reset Consumer Offset for Group, revise os Prerequisites e defina a política de redefinição.
-
Configure a opção Reset All Topics.
Clique em Yes para redefinir os offsets do consumidor de todos os tópicos.
Clique em No e insira o nome do tópico a ser redefinido na caixa de texto Topic.
-
Configure a opção Reset Method.
Clique em Reset Consumer Offset to Latest Offset e, em seguida, clique em OK.
Clique em Reset Consumer Offset to Offset at Specified Point in Time. No campo Point in Time, clique no ícone de calendário
e selecione um horário para iniciar o consumo. Em seguida, clique em OK.Clique em Reset Consumer Offsets by Partition. Na linha da partição de destino, insira o offset inicial na caixa de texto Consumer Offset e, em seguida, clique em OK.
-
Na caixa de diálogo Note, confirme as informações e clique em OK.
Perguntas frequentes
Redefinir os offsets do consumidor pode resolver falhas no consumo parcial de tópicos?
Redefinir os offsets do consumidor pode ajudar a mitigar alguns casos de falhas no consumo parcial de tópicos. No entanto, antes de prosseguir, investigue se o problema é causado por rebalanceamentos frequentes ou por atribuição anormal de partições.
Se houver rebalanceamentos frequentes, verifique a versão do cliente Kafka e ajuste os parâmetros
session.timeout.msemax.poll.interval.mspara valores adequados à sua carga de trabalho de consumo.Confirme se o grupo de consumo se inscreveu corretamente no tópico de destino.
Caso a causa raiz seja confirmada como atribuição anormal de partições, redefinir o offset do consumidor permitirá que o grupo de consumo reconsuma as mensagens a partir da posição correta.
Posso continuar consumindo após alterar o ID do grupo de consumo do Kafka?
Sim. Após alterar o ID do grupo de consumo, o novo grupo poderá continuar o consumo. No entanto, o offset inicial depende de o novo grupo de consumo estar iniciando pela primeira vez e do estado atual do tópico. Antes de alternar os IDs dos grupos de consumo, investigue primeiro a causa raiz de quaisquer problemas, como falhas de rede ou tempo limite de heartbeat, para evitar que o novo grupo enfrente problemas semelhantes.
Excluir um grupo de consumo do Kafka também exclui seus tópicos inscritos?
Não. Os grupos de consumo e os tópicos são recursos independentes no ApsaraMQ for Kafka. Excluir um grupo de consumo remove apenas o grupo e seus offsets de consumo. Os dados e a configuração dos tópicos inscritos não são afetados.
Documentos relacionados
Redefina os offsets do consumidor programaticamente chamando a operação da API Reset a consumer group's consumer offset.
Após a redefinição, verifique o offset do consumidor atualizado em Visualize consumption status.