Win10启动Zookeeper时显示端口被占用

684 阅读1分钟

安装zookeeper之后,使用默认配置启动服务时报端口被占用,默认端口是2181。 而且使用netstat -ano | findstr '2181'找不到占用端口的进程。 报错信息:

java.net.BindException: Address already in use: bind
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
        at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:687)
        at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:143)
        at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:106)
        at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:64)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:128)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:82)

问题原因:

Win10预留了一部分端口,导致这些端口无法被使用。可以通过命令查看这些系统保留的端口号:

netsh interface ipv4 show excludedportrange protocol=tcp

执行结果

解决方案:

不使用这些系统端口

参考链接:ww2000e.gitee.io/2019/10/19/…