生产者在生产时,配的回掉显示发送是正常的,但是消费的时候会出现消息丢失的情况。消费者的是自动提交的,一秒提交一次,并且是多线程的。而且看了消费日志没有出现报错的情况,请问有什么别的原因吗?
1、丢失有规律吗,是只丢最后几条,还是随机的丢。2、多线程消费者是在程序运行中动态的创建销毁,还是在程序运行的时候启动然后一直保持。3、程序是在生产上跑了多久,还是刚写的程序,只是在进行测试。
1.丢失没有规律,后面的偏移量已经消费到了。2.消费程序是程序启动就创建了,每一条数据是多线程执行的。3.程序在生产上面跑了很久了。之前也有丢失过,然后直接在poll之后就打印日志,发现还是没有
offset的是自动提交,还是手动提交?自动提交的话,应该是没问题,需要往生产者排查。手动提交offset的话,要注意先提交offset,在将消息丢给业务层处理,要捕获业务层抛上来的异常,如果有业务消费有异常,未捕获,就会导致丢失。
错了,自动提交和手动都要关注,消息丢给业务之后,是否捕获业务抛上来的异常。如果异常没有捕获,就会导致消息丢失。
我们这边是自动提交的,在调用poll的方法中,捕捉了全部的异常。生产者的callback日志正常,可以看到消息提交的具体的偏移量和分区。
问题查下来是有两个分区的消息堆积了,看丢失消息的时候,特意看了分区和位移,还是经验不足啊。
这...太粗糙了
能详细描述下原因吗?我也遇到了这个问题
我遇到的这个就是消息堆积了,然后重启服务就好了,另外遇到过不消费是kafka0.9.0.0里面的一个bug,你可以看下这个帖子https://blog.csdn.net/xianzhen376/article/details/51971167
分区消息堆积,会导致漏消费某些消息? 目前我这边的情况是,topic 12000~15000中的几个消息丢失.
指offset
消息堆积,导致这几个分区的消息都没有消费,就跟丢消息一样,不会恢复以后还会继续消费,你这个是丢的消息已经消费了?偏移量已经走后面去了,如果确定发消息没问题,那可能是在消费的有异常,看下日志排查下。
找不到想要的答案?提一个您自己的问题。
0 声望
这家伙太懒,什么都没留下
1、丢失有规律吗,是只丢最后几条,还是随机的丢。
2、多线程消费者是在程序运行中动态的创建销毁,还是在程序运行的时候启动然后一直保持。
3、程序是在生产上跑了多久,还是刚写的程序,只是在进行测试。
1.丢失没有规律,后面的偏移量已经消费到了。
2.消费程序是程序启动就创建了,每一条数据是多线程执行的。
3.程序在生产上面跑了很久了。之前也有丢失过,然后直接在poll之后就打印日志,发现还是没有
offset的是自动提交,还是手动提交?
自动提交的话,应该是没问题,需要往生产者排查。
手动提交offset的话,要注意先提交offset,在将消息丢给业务层处理,要捕获业务层抛上来的异常,如果有业务消费有异常,未捕获,就会导致丢失。
错了,自动提交和手动都要关注,消息丢给业务之后,是否捕获业务抛上来的异常。如果异常没有捕获,就会导致消息丢失。
我们这边是自动提交的,在调用poll的方法中,捕捉了全部的异常。生产者的callback日志正常,可以看到消息提交的具体的偏移量和分区。
问题查下来是有两个分区的消息堆积了,看丢失消息的时候,特意看了分区和位移,还是经验不足啊。
这...太粗糙了
能详细描述下原因吗?我也遇到了这个问题
我遇到的这个就是消息堆积了,然后重启服务就好了,另外遇到过不消费是kafka0.9.0.0里面的一个bug,你可以看下这个帖子https://blog.csdn.net/xianzhen376/article/details/51971167
分区消息堆积,会导致漏消费某些消息? 目前我这边的情况是,topic 12000~15000中的几个消息丢失.
指offset
消息堆积,导致这几个分区的消息都没有消费,就跟丢消息一样,不会恢复以后还会继续消费,你这个是丢的消息已经消费了?偏移量已经走后面去了,如果确定发消息没问题,那可能是在消费的有异常,看下日志排查下。
你的答案