转:Kafka 客户端TimeoutException问题之坑
原文出自:http://www.jianshu.com/p/2db7abddb9e6各种TimeoutException问题会抛出org.apache.kafka.common.errors.TimeoutException:message可能为各种:Batch ExpiredFailed to update metadata after 60000 ms.ailed to update meta
·
原文出自:http://www.jianshu.com/p/2db7abddb9e6
各种TimeoutException问题
会抛出org.apache.kafka.common.errors.TimeoutException:
message可能为各种:
- Batch Expired
- Failed to update metadata after 60000 ms.
- ailed to update metadata after
- ...
原因
原因是发布到zookeeper的advertised.host.name如果没有设置,默认取java.net.InetAddress.getCanonicalHostName().
值,被用于生产端和消费端。因此外部网络或者未配置hostname映射的机器访问kafka集群时就会有网络问题了。
原因是kafka客户端连接到broker是成功的,但连接到集群后更新回来的集群meta信息是错误的即是会返回的是节点的hostname
解决办法1:手动配置advertised.host.name和advertised.port,2个参数都必须配置,重启问题解决:
advertised.host.name=ip
advertised.port=9092
解决办法2:在外部网络添加kafka服务器的主机名和IP的映射关系,linux就是在/etc/hosts文件中添加
更多推荐
所有评论(0)