首页 > 其他 > 详细

Kafka消费不到数据的特殊情况

时间:2017-11-13 20:41:29      阅读:377      评论:0      收藏:0      [点我收藏+]

我大约是把kafka消费不到数据的特殊情况都经历了一遍了吧= =、

kafka消费不到数据的原因,首先检查配置之类的,如是否设置了group.id,对应的topic是否正确等等,这些不多说。

下面是我遇到的几种kafka消费不到数据的情况:

1.多分区,设置了topic但是没有设置分区及offset

解决办法:

consumer.Assign(new List<TopicPartitionOffset>(){ new TopicPartitionOffset(new TopicPartition("topic", 1), Offset.Stored) });

 

2.长时间不消费导致 log.retention.hours或者 log.retention.minutes超时,清除log,Offset.Stored失效

解决办法一:

consumer.Assign(new List<TopicPartitionOffset>(){ new TopicPartitionOffset(new TopicPartition("topic", 1), new Offset(index)) });

此处的index为该分区当前的offset, 要手动配置,可测试用。

解决办法二:见问题三,同样解决方式

 

3.我一次加数据太多导致磁盘耗尽,kafka管理员帮我改到20G内存,但是仍然有一部分数据超出,分区offset靠前的数据被清除,导致再次消费不到。

解决办法:同上述Offset.Stored的解决办法二

consumer.Assign(new List<TopicPartitionOffset>(){ new TopicPartitionOffset(new TopicPartition("topic", 1), Offset.Beginning) });

或者在配置中加

auto.offset.reset=smallest //.NET 默认是largest
auto.offset.reset=earliest//Java 默认是latest

 

关于该配置的测试,请看下面的链接

http://blog.csdn.net/lishuangzhe7047/article/details/74530417

Kafka消费不到数据的特殊情况

原文:http://www.cnblogs.com/sylvialucy/p/7827044.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!