kafka多线程消费多分区数据时,刚开始每个线程消费各分区的数据都是正常的,但运行了一段时间后,其中一个分区的数据就没有被消费了,用命令查看lag,在持续增长. 另外kafka的日志和订阅代码的日志,都没有任何异常. 消费的代码和您教程中的示例是一样的. 麻烦问下,有没有遇到过这种情况,或有没有解决的思路...
同样的问题 什么状态都是正常的 就是某个分区 偶尔 就不消费了
我的情况差不多,八个分区数,七个新消费者去监听,然而分区数0和1被一个消费者监听,导致这台机子数据量剧增,数据一直堆积,根本消费不动
1个分区消费2个是kafka正常逻辑,并且不会随便改变(长连接)。
你在启动一个消费者,这样8对8,是不是就解决了你的问题。
先查询下集群的状态:kafka命令大全:https://www.orchome.com/454
是否是始终没人消费,还是过一段时间就会消费?
持续6个多小时都没有被消费,因为是线上环境,后来就重新设置了offset后,又开始消费了.
有没有可能是生产速度大于了消费速度?
如果是这样,有没有什么办法,让每个分区消费消费时轮询订阅?
不会的。生产大于消费者速度是正常的。
没有用异常信息。
我也遇到同样的问题, 消费非常慢, 我设置五个分区,其中有两个分区很慢,我尝试换了物理机,问题任然存在
应该是多线程写的有问题,你可以用最原始的java程序进行消费,不要改动任何代码。
参见:kafka消费者Java客户端
你的答案