1、背景说明
1.1、Kafka集群节点3个,集群节点使用名称进行管理。
1.2、本机发布数据正常,部分服务器发布数据正常,部分服务器无法发布数据,使用java程序发布测试,无错误提示。
1.3、客户端使用ip+port方式连接Kafka集群。
2、原因查找
2.1、查看网络连接情况,发现端口连接正常,有对应地址的TCP连接,并且状态是正常的。
2.2、使用tcpdump port 9092监测网络报文,发现有交互报文,有发送主题信息,返回集群节点信息报文。
2.3、使用Kafka自带的脚本进行测试,提示节点连接失败,节点提示的是名称。
2.4、修改hosts文件,增加名称和IP的对应关系。
2.5、重新发布数据,正常。
3、总结分析
3.1、连接Kafka集群,可以只指定一个节点,其它节点信息可以自动获取。
3.2、客户端使用IP连接集群,连接没问题,但是返回集群节点时,返回的是名称,根据名称连接节点时,就会出现连接失败的情况。
3.3、解决办法:在hosts文件中增加别名与IP的对应,或者集群中不要使用别名(使用IP启动慢?)。
3.4、问题查找方法1:使用Kafka自带的工具进行测试。
3.5、问题查找方法2:使用tcpdump进行抓包分析。
阅读(420) | 评论(0) | 转发(0) |