Zookeeper ipv6的坑
Posted 张包峰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper ipv6的坑相关的知识,希望对你有一定的参考价值。
问题
zookeeper抛这样的错误:
[main-SendThread(localhost:2000)] ERROR org.apache.zookeeper.ClientCnxn - Unable to open socket to localhost/0:0:0:0:0:0:0:1:2181
4549 [main-SendThread(localhost:2000)] WARN org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.SocketException: Address family not supported by protocol family: connect
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:532)
at org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1071)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1104)
注意到
localhost/0:0:0:0:0:0:0:1
localhost被翻译成了0:0:0:0:0:0:0:1。
打开/etc/hosts,可以看到127.0.0.1和::1都有localhost的配置:
显然在打开ipv6的情况下,localhost的值被后者覆盖了,所以zk抛错了。
解决
两个简单的解决方案:
1. 关闭ipv6。
2. 在hosts里,把::1对应的localhost改个别名,比如localhost-ipv6。
全文完 :)
以上是关于Zookeeper ipv6的坑的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud ZooKeeper集成Feign的坑3,程序Run模式运行没事,Debug模式下报错
Spring Cloud ZooKeeper集成Feign的坑2,服务调用了一次后第二次调用就变成了500,错误:Servlet.service() for servlet [dispatcherSe