kafka java客户端消费不到消息,但也不报错

半兽人 发表于: 2016-09-18   最后更新时间: 2016-09-20 11:13:15   14,388 游览

发现最近很多人遇到kafka客户端消费时,拿不到消息的情况,我来推荐几个排查的方式。

  1. 通过集群的命令启动消费者,同步监控,确保消息确实有。
    (如果是自己写的客户端发送,建议使用官方提供java例子,自己写的发送我不知道你是怎么实现的,很多自己改了客户端,发送时由于消息还在缓存中,还没来的及发送,程序就已经结束了,导致的消息丢失了)

  2. 先启动客户端的消费者,再发送消息
    (只有第一次需要,因为在此之前,还没有注册到消费列表中,之前在topic里的消息就不会被刚启动的消费者消费到。)

发表于 2016-09-18
添加评论

您好 我的kafka是2.11-2.0.0,有3个节点,每个topic有5个partition ,两个不同groupid的线程消费同一个topic,一个可以正常消费,另一个一直不消费,连接也不报错,命令可以看到不消费的那个group,显示有数据积压 ,用命令测试可以正常消费该topic,请问这个怎么解决?

半兽人 -> Palan 5年前

按照你的说法,都是正常的,看不到问题。 消费者直接拿官方原生的例子进行消费试试,不要动代码。因为之前有人代码包的线程有问题。

小鱼杰杰 -> 半兽人 5年前

前辈请问下,我的kafka无论是集群还是单点,消息都会堆积很多,及时消费不掉,造成数据延迟。有没有好的解决方案。急呀

半兽人 -> 小鱼杰杰 5年前

你发个问题贴吧,把你机器的配置布局,分区数和当前的并发描述一下。我给你分析一下。

欢迎补充。

我遇到的情况是

#   FORMAT:
#     listeners = security_protocol://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092

官网给的例子为 listeners=PLAINTEXT://:9092 感觉容易误导

半兽人 -> 海角天涯 8年前

恩,如果不设置ip的情况下,kafka集群只能本机使用。

客户端不能消费,可以生产,求大神看看什么原因

用命令消费,确保消息是真的收到了。

命令都是可以的,可以生产可以,可以消费,客户端可以生产,服务器命令也可以消费,就是终端不能消费,debug 报错:org.apache.kafka.common.errors.GroupCoordinatorNotAvailableException: The group coordinator is not available. 

您好,首次消费解决了,但是想了解下第二条 --先启动客户端的消费者,再发送消息--是从哪里了解的呢

先启动客户端就是为了首次消费呀。

嗯嗯,我是想问这个流程,你是从官方文档或API中了解到的,还是测试出来的?

原理如此的,就跟你订报纸一样,你没订之前,报纸是不会发给你的,当你第一次订报纸后,报社才清楚。所以之后的新报纸,会一直给你。之前发过的就不会在给你了。

你的答案

查看kafka相关的其他问题或提一个您自己的问题