搭建的单节点,使用的是自带的zookeeper
现在有一个消费程序消费A topic,但是每天都有一部分数据消费了一部分没有消费
protocol_commands如下图
尝试过手动将偏移量调到最新,新的一天仍然出现了有2000+偏移量积压,数据量不大
请大佬们帮忙看下 有没有什么参数设置需要注意的 不胜感激
搭建的单节点,使用的是自带的zookeeper
现在有一个消费程序消费A topic,但是每天都有一部分数据消费了一部分没有消费
protocol_commands如下图
尝试过手动将偏移量调到最新,新的一天仍然出现了有2000+偏移量积压,数据量不大
请大佬们帮忙看下 有没有什么参数设置需要注意的 不胜感激
图能看到么?看不到的话 我描述下 就是用 desc命令 查看了:
current-offset:252525 log-end-offset 252626 总是不能完全消费 导致数据拿不到 每天都会有一些消费不到 但是却不影响去他数据局的消费
这么说:一部分设备的数据该有还是会有 每天一条我能取到,但是总是那一部分的设备 一直取不到数据 很神奇
对了忘了补充、:该topic是一个分区 一个备份
你这个消费者是会停掉吗?
我看到protocol_commands已经没有消费者去消费它了。
我这个消费者是一个web项目的存储程序,按理说是不会停的。监听的这个topic,我去日志确认了下没有停过
还有什么原因么
1、已经没有消费者去消费它了,看看程序是否已经停掉了。
2、你在处理消息的时候,poll(100)方法,无论消息是否处理成功,都不要往上抛异常。
你这个消费者已经lag了33583,你的描述里说只有2000条、咱俩看到的信息好像不一致。
这个是昨天 堆积了 好多天的 我手动set offset到最新 今天 又出现了2000+没消费的 是这个意思
也可以先用
netstat -unltpa | grep 9092
,在消费者客户端,看看是否还维护着与kafka的长连接。同时观察这个长连接的端口会不会过一段时间变,如果变,说明断开过,要检查消费者的代码了,不变才是正常。
好 我先试试 谢了
额 有点看不太懂~~
[root@jichao ~]# netstat -unltpa | grep 9092 tcp6 0 0 :::9092 :::* LISTEN 83611/java tcp6 0 0 192.168.11.222:31349 192.168.11.222:9092 ESTABLISHED 84391/java tcp6 0 0 192.168.11.222:31369 192.168.11.222:9092 ESTABLISHED 84568/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:33341 ESTABLISHED 83611/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:31369 ESTABLISHED 83611/java tcp6 1 0 192.168.11.222:31211 192.168.11.222:9092 CLOSE_WAIT 83611/java tcp6 0 0 192.168.11.222:33341 192.168.11.222:9092 ESTABLISHED 87966/java tcp6 0 0 192.168.11.222:31371 192.168.11.222:9092 ESTABLISHED 84568/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:31347 ESTABLISHED 83611/java tcp6 14 0 192.168.11.222:31347 192.168.11.222:9092 ESTABLISHED 84391/java tcp6 0 0 192.168.11.222:31377 192.168.11.222:9092 ESTABLISHED 84568/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:31349 ESTABLISHED 83611/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:31377 ESTABLISHED 83611/java tcp6 0 0 192.168.11.222:32747 192.168.11.222:9092 ESTABLISHED 86221/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:31375 ESTABLISHED 83611/java tcp6 0 0 192.168.11.222:32749 192.168.11.222:9092 ESTABLISHED 86221/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:32747 ESTABLISHED 83611/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:32749 ESTABLISHED 83611/java tcp6 0 0 192.168.11.222:9092 192.168.11.222:31371 ESTABLISHED 83611/java tcp6 0 0 192.168.11.222:31375 192.168.11.222:9092 ESTABLISHED 84568/java
我粘出来
[root@jichao ~]# jps 52499 Bootstrap 84391 Bootstrap 84695 jar 88935 Jps 52567 Bootstrap 83289 QuorumPeerMain 84568 jar 83611 Kafka 86221 ConsoleConsumer 52349 Bootstrap 87966 ConsoleProducer
消费者和kafka放在同一台机器上
就一个服务器在一起的
我怀疑消费者代码那块的逻辑,重点排查下吧,看看消费者是否用了多线程导致的。
或者你直接拿官方的例子,什么也不要改,直接运行。
你好 破案了,是代码没有catch异常。。。我真的
~,结果存储程序出错后消费程序直接停在那里了。。。晕死 可能就是某一个设备上报的确实有错,因为他们是按顺序上报的,导致的有数据的总有,没有数据的总没。。。也算是一个教训昨天还在想是不是因为多线程 merge into 导死锁了~~还是谢谢你了
这个不能消费完,大致有什么原因呢?想不明白
你的答案