Kafka0.11如何重置偏移

cuxqih21  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(294)

我正在尝试用kafka的最新cli工具重置消费者偏移量。

kafka-consumer-groups.bat --bootstrap-server kafka-host:9092 --group my-group --reset-offsets --to-earliest --all-topics

因此,我看到以下输出:

TOPIC                            PARTITION  NEW-OFFSET
FirstTopic                       0          0
SecondTopic                      0          0

但再次运行命令:

kafka-consumer-groups.bat --bootstrap-server kafka-host:9092 --group my-group --describe

输出结果:

Consumer group 'my-group' has no active members.

TOPIC              PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG
FirstTopic         0          1230            1230            0  
SecondTopic        0          1022            1022            0

我尝试过其他选项,比如重置为显式偏移或直接指定主题,但结果是一样的。输出表明操作成功,而使用descripe命令检查偏移量,或者调试表明偏移量没有更改。
在非zookeeper代理中成功重置消费者补偿的任何人。

o2gm4chl

o2gm4chl1#

默认情况下, --reset-offsets 只打印手术结果。要实际执行您需要添加的操作 --execute 听从你的命令:

kafka-consumer-groups.bat --bootstrap-server kafka-host:9092 --group
my-group --reset-offsets --to-earliest --all-topics --execute
yquaqz18

yquaqz182#

虽然公认的答案完美地回答了op问题,但有更多的参数可用于重置偏移。所以添加这个答案来扩展接受的答案。
将所有主题的偏移量重置为消费者组中最早的主题

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --to-earliest --all-topics --execute

将特定主题的偏移量重置为消费者组中最早的偏移量

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --to-earliest --topic <my-topic> --execute

将特定主题的偏移量重置为使用者组中的特定偏移量

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --to-offset 1000 --topic <my-topic> --execute

其他支持的参数:
--按[正整数或负整数]移位-从给定整数向前或向后偏移。
--“到当前”和“到最新”等同于“到偏移”和“到最早”。
--截止日期时间[日期时间格式为yyyy-mm-ddthh:mm:ss.]

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --to-datetime 2017-08-04T00:00:00.000 [ --all-topics or --topic <topic-name> ] --execute

--按持续时间[格式为pndtnhnmns]

kafka-consumer-groups.sh --bootstrap-server <kafka_broker_host:9091> --group
    <group_name> --reset-offsets --by-duration PT0H10M0S [ --all-topics or --topic <topic-name> ] --execute

从当前时间戳重置为按持续时间偏移。
如何验证?
使用下面的命令检查当前/结束偏移量,并确认已复位。

kafka-consumer-groups.sh --bootstrap-server <kafka_host:port> --group <group_id> --describe

样本输出:

Consumer group 'group1' has no active members.

TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
intro           0          0               99              99              -               -               -

可能的错误:
错误:仅当组“[group\u name]”处于非活动状态,但当前状态稳定时,才能重置分配。
“稳定”意味着,有一个活跃的消费者在为这个群体奔波。因此,首先您必须停止活动消费程序并重试重置偏移量。
如果消费者组中存在活动消费者,则无法重置偏移。

相关问题