Kafka中@KafkaListener不自动监听消费数据了

Kafka中不自动消费的问题解决方案

查看源码

如果项目中有多个不同的topic需要消费,那么一定要注意@KafkaListener中id的配置,源码中如下

/**
	 * The unique identifier of the container managing for this endpoint.(管理此端点的容器的唯一标识符 )
	 * <p>If none is specified an auto-generated one is provided.
	 * @return the {@code id} for the container managing for this endpoint.
	 * @see org.springframework.kafka.config.KafkaListenerEndpointRegistry#getListenerContainer(String)
	 */
	String id() default "";

上边源码中提到了,id是容器的唯一标识符。

我自己遇到的问题
我之前的项目中就是因为有好几个不同的topic,不同的方法对应的注解@KafkaListener里边我直接写的(topics = { }, containerFactory = “kafkaListenerContainerFactory”),这两个参数,然后上边topic中放不同的名称就行,之前一点问题都没有。就在前两天的时候,突然kafka不自动实时消费了,找了好久的问题,服务器上三个集群kafka和zookeeper都启动了,集群状态也查看了,kafka在linux命令试了一下生产和消费消息也没问题(基本命令操作,请看最后边)。后来准备使用KafkaListenerEndpointRegistry这个类,可以手动控制启动和停止监听,这个类中需要配置id(不知道这个类的,可以参考这个 Little Coder)。写好之后,启动项目,正准备发送启动请求,结果一看已经在自动消费了,后来我就给每个方法的注解@KafkaListener配置上了不同的id参数@KafkaListener(topics = { }, containerFactory = “kafkaListenerContainerFactory”, id = “”),OK!至此监听自动不消费的问题解决了。

linux操作kafka基本命令

#注:执行这些命令之前,必须是在kafka目录下的bin文件夹中

# 查看集群状态
./kafka-topics.sh --describe --zookeeper

# 查看Topic
./kafka-topics.sh --list --zookeeper 10.0.5.245:2181,10.0.5.157:2181,10.0.5.158:2181

# 创建主题
./kafka-topics.sh --create --zookeeper 10.0.5.245:2181,10.0.5.157:2181,10.0.5.158:2181 --topic test --partitions 3 --replication-factor 1

# 向主题生产消息  CTRL+D结束写入内容
./kafka-console-producer.sh --broker-list 10.0.5.245:9092,10.0.5.157:9092,10.0.5.158:9092 --topic test

# 消费消息
./kafka-console-consumer.sh --bootstrap-server 10.0.5.157:9092 --topic test --from-beginning

自己工作中遇到的问题做的总结,希望对大家有帮助。最后愿工作中忙碌的你找机会抽空放松一下自己,不要累倒身体,加油把努力的人类们!!!

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值