kafka实战宝典:手动修改消费偏移量的两种方式
工作中遇到过消费端报错的问题:包括数据Invalid Message和Failed_to_UNcompress等报错信息,导致消费端的iterator损坏,直接造成消费进程挂掉,如果不能及时发现问题,需要手动跳过某些数据;
Kafka的偏移量的保存方式根据版本号的异同有3种方式:保存在zookeeper中、保存在kafka的topic(_consumer_offset)中、保存在自定义的存储系统中,
下面介绍前2
种修改方式
。
1、修改保存在zookeeper中的偏移量:
使用./zkCli.sh -server xxxx:2181 进入zk命令行模式,get对应的消费组的对应分区的偏移量,使用set方法指定偏移量;
2、修改保存在kafka的topic内的偏移量:
使用Kafka自带的kafka-consumer-groups.sh脚本设置消费者组(consumer group)的位移, 这是0.11.0.0版本提供的新功能且只适用于新版本consumer, 在新版本之前,如果要为已有的consumer group调整位移必须要手动编写Java程序调用KafkaConsumer#seek方法。
0.11.0.0版本丰富了kafka-consumer-groups脚本的功能,用户可以直接使用该脚本很方便地为已有的