码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-11-13 21:29:04      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:等等   清除   配置   磁盘   detail   遇到   解决办法   strong   tle   

我大约是把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消费不到数据的特殊情况

标签:等等   清除   配置   磁盘   detail   遇到   解决办法   strong   tle   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!