kafka_2.11-0.10.1.1 无法发送消息和消费消息

youarepp 发布于 2017/02/07 15:34
阅读 2K+
收藏 0

异常现象如下:

[2017-02-07 15:23:54,323] ERROR Error when sending message to topic test with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

 

最近打算将中间件迁移到kafka,新搭的集群环境kafka+zookeeper集群,发送消息总是报这个错,网上也没有找到解决方案,就想问问这里的兄弟们有熟悉这个的吗

加载中
0
dollyn
dollyn

信息不够,猜一下,没配hosts?

dollyn
dollyn
回复 @youarepp : 那必须修改配置hosts文件,把三台机器的ip和hostname的对应关系都加进去。 或者也可以修改kafka配置文件,advertised.host.name=192.xxx 这样让kafka返回给客户端ip而不是机器名
y
youarepp
我的hosts里面第一条都是127.0.0.1 localhost,这个有关系吗? 用的是3台服务器做的集群, 用程序获取到的机器名是localhost,是因为这个原因吗, 配置我是这样配的 listeners=PLAINTEXT://ip:9092 zookeeper.connect=ip1:2181,ip1:2181,ip1:2181
dollyn
dollyn
回复 @youarepp : 不知道你的配置和部署情况,kafka集群默认返回的是机器名,所以要保证客户端到服务器之间可以通过机器名联通; 另外,进看你给的这两条信息不能确定是这个问题,比如也可能你指定的地址错 了
y
youarepp
用IP的,这个必须是机器名吗
0
y
youarepp

我的hosts里面第一条都是127.0.0.1 localhost,这个有关系吗?

用的是3台服务器做的集群, 用程序获取到的机器名是localhost,是因为这个原因吗,

配置我是这样配的

listeners=PLAINTEXT://ip:9092

zookeeper.connect=ip1:2181,ip1:2181,ip1:2181

0
y
youarepp

问题已找到,应该是kafka的机制问题,之前我是kafka集群放在腾讯云上,然后我把9092端口映射出来,kafka在使用的时候是会随机分配一个端口来发送和接收消息,所以结论是最好在同一局域网内,所有端口都开放。

0
无畏的老巨人
无畏的老巨人

I would say,it's impossible!

返回顶部
顶部