kafka-1-消费者consumer无法消费的异常
(1)异常现象:
服务器:record is corrupt(记录损坏)不明原因,有可能磁盘空间不足导致,导致消费者无法正常消费消息,卡在某一个offset不能继续消费。
(2)解决办法:
先停掉消费者程序,杀掉进程(不可关闭kafka服务)然后手动设置偏移量,跳过卡在的offset位置。
进入kafka目录,命令:
bin/kafka-consumer-groups.sh --bootstrap-server ip:9092 --group groupName --reset-offsets --to-offset 1000 --topic topicName --execute
然后重启消费者程序
(3)举例
查看特定consumer group 详情,使用--group与--describe参数
# kafka-consumer-groups.sh --bootstrap-server hbak1:9092 --group consumer1 --describe
分区2,当前偏移量为2
分区1,当前偏移量为0
分区0,当前偏移量为13
(3-1)设为offset10
# kafka-consumer-groups.sh --bootstrap-server hbak1:9092 --group consumer1 --re set-offsets --to-offset 10 --topic zb --execute
(3-2)设为offset0
# kafka-consumer-groups.sh --bootstrap-server hbak1:9092 --group consumer1 --re set-offsets --to-offset 0 --topic zb --execute
从图中可以看出,如果设置偏移量为10。
分区2,偏移量会被设置为2
分区1,偏移量会被设置为0
(3-3)然后运行如下的程序,就会从偏移量位置开始消费了。
from kafka import KafkaConsumer
|