转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。
问题描述:
前几天部署一套环境,先把zk集群起来了,之后第二天在启动kafka的时候,报错了,提示连不上zk。报错:
Unable to connect to zookeeper server '10.0.12.10:2181,10.0.12.12:2181,10.0.12.13:2181' with timeout of 6000 ms
原因分析:
-
查看kafka的配置,并未发现任何异常。
-
然后检查zk自身是否OK,看了三台集群节点的进程、端口都一切正常。但是在使用./zkCli.sh去检查zk的集群状态时,发现了异常,发现集群节点之间相互不通信。
-
在三套zk节点上商户telnet检查端口,果然端口不通。
-
因三台服务器均在同一个网段下,检查防火墙,发现三台服务器的防火墙被人启动了,所以导致了zk集群之间相互端口不通。
解决方案:
1. 关闭防火墙
因三台机器都是内网使用机器,不对外通信,因此关闭防火墙即可。
2. 保留防火墙开端口
如在某些情况下,端口必读开启,则可以通过防火墙命令放开zk、kafka之前的所有通信端口:
[root@host-10-0-12-13 ~]# firewall-cmd --list-ports
3888/tcp 2181/tcp 2888/tcp 9092/tcp
[root@host-10-0-12-13 ~]#
补充:
zk三个端口的作用:
- 2181:对cline端提供服务
- 3888:选举leader使用
- 2888:集群内机器通讯使用(Leader监听此端口)
欢迎关注SRE成长记一起探讨学习!↓↓↓