kafka_2.11-0.10.1.1 无法发送消息和消费消息
异常现象如下:
[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集群,发送消息总是报这个错,网上也没有找到解决方案,就想问问这里的兄弟们有熟悉这个的吗
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
I would say,it's impossible!
问题已找到,应该是kafka的机制问题,之前我是kafka集群放在腾讯云上,然后我把9092端口映射出来,kafka在使用的时候是会随机分配一个端口来发送和接收消息,所以结论是最好在同一局域网内,所有端口都开放。
我的hosts里面第一条都是127.0.0.1 localhost,这个有关系吗?
用的是3台服务器做的集群, 用程序获取到的机器名是localhost,是因为这个原因吗,
配置我是这样配的
listeners=PLAINTEXT://ip:9092
zookeeper.connect=ip1:2181,ip1:2181,ip1:2181
用IP的,这个必须是机器名吗
回复
@youarepp : 不知道你的配置和部署情况,kafka集群默认返回的是机器名,所以要保证客户端到服务器之间可以通过机器名联通; 另外,进看你给的这两条信息不能确定是这个问题,比如也可能你指定的地址错 了
我的hosts里面第一条都是127.0.0.1 localhost,这个有关系吗? 用的是3台服务器做的集群, 用程序获取到的机器名是localhost,是因为这个原因吗, 配置我是这样配的 listeners=PLAINTEXT://ip:9092 zookeeper.connect=ip1:2181,ip1:2181,ip1:2181
回复
@youarepp : 那必须修改配置hosts文件,把三台机器的ip和hostname的对应关系都加进去。 或者也可以修改kafka配置文件,advertised.host.name=192.xxx 这样让kafka返回给客户端ip而不是机器名
信息不够,猜一下,没配hosts?