kafka版本 2.13-3.40
- 一、消费者相关
- 1.1 消费组
- 1.1.1 查看消费组命令找不到消费组
- 1.2 主题
- 1.2.1 kafka默认主题_consumer_offsets 不小心删除
- 二、发布者相关
- 三、Spring Boot连接相关
- 3.1 消费者相关
- 3.1.1 连接报错
- 3.1.1.2 消费报错
一、消费者相关
1.1 消费组
1.1.1 查看消费组命令找不到消费组
详情: 运行以下命令后,控制台界面无任何输出
kafka-consumer-groups.sh --bootstrap-server 192.168.2.83:9092 --list
如下图:
解决方法:
指定消费者群组进行消费,成功消费后将自动创建所指定的消费者群组。
springboot指定消费者群组:消费者配置类添加下面代码(消费者配置类可查看springboot连接kafka)
props.put(ConsumerConfig.GROUP_ID_CONFIG, "kakfa-test");
结果如图:
1.2 主题
1.2.1 kafka默认主题_consumer_offsets 不小心删除
详情: 删除了_consumer_offsets主题
如下图:
解决方法:
- 重新创建主题 __consumer_offsets
bin/kafka-topics.sh --bootstrap-server 192.168.2.86:9092 --topic __consumer_offsets --create
-
重启kafka服务
-
进行查看
结果如图,可以看到主题__consumer_offsets:
不成功的检查一下 kafka 服务配置 ,添加:
auto.create.topic.enable=true
二、发布者相关
三、Spring Boot连接相关
3.1 消费者相关
3.1.1 连接报错
详情: springboot启动后连接kafka集群报错:协调器不正确,标记协调器未知。
Request joining group due to: rebalance failed due to 'This is not the correct coordinator.' (NotCoordinatorException)
如下图:
解决方法
该问题出现原因一般是因为消费者类配置不正确,或提供group id 有问题。若不清楚group id请显示的指定分区,避免将错误的group id写入。
@KafkaListener(topicPartitions = { @TopicPartition(topic = "kafka-topic-test", partitions = { "0", "8" })
})
3.1.1.2 消费报错
详情: 消费成功,但报错 This error handler cannot process 'org.apache.kafka.common.errors.InvalidGroupIdException's; no record information is available
如下图:
解决方法
这个提示很明显,没有提供可用的 group id。我们只需要在消费者配置中设置一个即可,这个错误的原因是未设置group id,但又使用了subscribe(topic) 或基于 Kafka 的偏移量管理策略使用组管理功能引起。