频道栏目
首页 > 资讯 > 云计算 > 正文

Zookeeper集群模式无法部署云服务器【java.net.BindException: 无法指定被请求的地址 (Bind failed)】的解决

17-08-08        来源:[db:作者]  
收藏   我要投稿

Zookeeper集群模式无法部署云服务器【java.net.BindException: 无法指定被请求的地址 (Bind failed)】的解决

正文

在云服务器(阿里云、腾讯云)上部署Zookeeper集群模式时,无法成功的原因有很多,网上主要提到了端口被占用(未开放)防火墙开启两种问题,类似的博客很多,本文不再赘述。
如果你已经针对上述两种情况做了修改依然没有成功,那么就可能出现了本篇的问题。
Zookeeper在启动时,并不会打印信息,即使集群启动失败,依然会显示:

这里写图片描述
这样我们看不到日志信息,无法判断出现的问题,通过

# zkServer.sh start-foreground

可以看到Zookeeper启动时的信息。
每次Zookeeper启动时信息很多,一定翻到最上面要从第一条开始看。

如果有这条错误消息

2017-08-05 09:27:32,253 [myid:1] - ERROR [/xxx.xx.xxx.xxx(你的IP):3888:QuorumCnxManager$Listener@763] - Exception while listening
java.net.BindException: 无法指定被请求的地址
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382)
    at java.net.ServerSocket.bind(ServerSocket.java:375)
    at java.net.ServerSocket.bind(ServerSocket.java:329)
    at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:742)

恭喜你和我遇到了同样的问题。

解决方法

很简单,在每个Zookeeper节点上的zoo.cfg里面添加上

quorumListenOnAllIPs=true

然后重启所有节点。

原因

我自己也不是很懂,大概是对于云服务器来说,由于是采用虚拟化的技术。。。。。。balabala,希望比较熟悉这方面的人可以赐教。

这个参数的潜在问题

主要是会影响ZAB协议和FastLeaderElection协议。
官网原文如下

quorumListenOnAllIPs

When set to true the ZooKeeper server will listen for connections from its peers on all available IP addresses, and not only the address configured in the server list of the configuration file. It affects the connections handling the ZAB protocol and the Fast Leader Election protocol. Default value is false

额外收获

在Zookeeper官网上找到了各种配置参数的说明,如果之后有啥问题也至于这么抓瞎。 
Zookeeper配置参数说明

感谢 & 引用

本文主要引用和参考了 @回头小kiss 的博客zookeeper集群无法正确启动
十分感谢博主的分享。 

同时还要感谢攀攀学长和张根学长的帮助。最终解决了这个问题

心路历程

手头的分布式爬虫,从自己想当然的准备手撸分布式协调算法到选型Zookeeper。从翻着满屏幕的Kazoo英文API文档到部署Zookeeper失败一次又一次。然后面对着Java网络编程的异常不知从何下手。。。。所幸最后的救命稻草---学长 及时出马拯救了我,bug啊bug,总会是有解决方法的,缘分到了自然就成了。 

当然,这件事情也充分的体现了技术面的重要,其实第一次去求助老王时,老王给出的方向很正确,就是对于云服务器虚拟化这方面可能存在的坑,但是我对于虚拟化实在是一窍不通,也没往这上想。而后来看到那个Java的异常,自己在网上搜了搜也没有啥相关的解释,可能这两方面自己有一点点的积累都能大概有个方向。

我和我最后的倔强,最后还是询问了学姐学长,感谢@攀攀学长和@傻根学长。 

真是尴尬,最后是学长找到篇博客。。。但是我自己搜罗N篇都没找到,果然有时候bug还是靠缘分的。

相关TAG标签
上一篇:HTTP学习教程
下一篇:SAML2.0 证书
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站