客户端平台:springboot 现在的问题是检测当前订阅的 topic 的 listenr 是否可用 之前是看日志里的 partitions assigned [] 和 kafka ERROR 日志确认的 但是经过测试这个并不靠谱 大家都是如何确认 kafka consumer is ready 的 kafka 是甲方提供的只有 topic 的 READ 权限
1
lixen9 277 天前
如果是基于 consumer group 去消费的话,那可以通过查看消费者对应的 consumer group 状态去做一个检测;如果是通过 assign 的方式消费的话,这个目前好像只能自行通过代码维护了
|
3
lixen9 277 天前
那也可以试试监测 consumer 的心跳线程,心跳线程会在消费者启动的时候开启,在消费者关闭的时候结束,只需要监测这个线程是否存活应该就行
|
4
sankooc OP @lixen9 是 kafka-coordinator-heartbeat-thread | <group-name> 这个线程名吗 只要这些线程处于等待状态即可是吧?
|
5
lixen9 275 天前
我理解只要线程存在应该就可以 consumer 停止之后,这个线程应该会消失,你可以测试看看,好久没看过那块代码了
|
7
lixen9 275 天前
简单看了下代码,KafkaConsumer 对象在 close 方法中会调用 ConsumerCoordinator 的 close 方法,然后 ConsumerCoordinator 在调用 close 方法的时候会在 finally 块中调用 super.close()方法,在 super 的 close 方法中会将心跳线程关闭。
|