不止会JS 2024-08-06 10:27 采纳率: 75%
浏览 83
已结题

zookeeper单服务器集群搭建,2888和2890端口没有监听

AI过来糊弄的就别回答了啊,我自己有gpt4会员,能解决早解决了

zookeeper单服务器搭建三节点集群,只有第二个启动的节点才会监听集群通信接口和选举接口,第一个和第三个启动的,只监听选举,不监听通信

clientPort=2181
server.1=0.0.0.0:2888:3888
server.2=0.0.0.0:2889:3889
server.3=0.0.0.0:2890:3890
clientPort=2182
server.1=0.0.0.0:2888:3888
server.2=0.0.0.0:2889:3889
server.3=0.0.0.0:2890:3890
clientPort=2183
server.1=0.0.0.0:2888:3888
server.2=0.0.0.0:2889:3889
server.3=0.0.0.0:2890:3890

myid也都配置正确
2888和2890没有被监听
试了3.4 3.6 3.8三个版本都没用,分成3个服务器就可以监听,为什么
日志文件太多,写不下,文件又发不了,需要看日志私我一下,我发md文件的日志

  • 写回答

12条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-08-06 18:00
    关注

    🕗晚上好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:相思一夜梅花发,忽到窗前疑是君。

    你遇到的问题很有意思,ZooKeeper单机伪集群配置中,只有第二个节点监听集群端口(2888, 2890)的原因在于ZooKeeper的内部选举机制。 让我来解释一下原因以及解决方案:

    问题根源:

    ZooKeeper的选举机制决定了,只有Leader节点才会监听所有端口(包括客户端连接端口和集群内部通信端口),而Follower节点只监听选举端口。在你启动单机伪集群时,三个节点依次启动,每个节点启动时都会尝试进行选举:

    1. 第一个节点启动: 由于没有其他节点,它会选举自己为Leader,并监听所有端口。
    2. 第二个节点启动: 它会尝试连接第一个节点,发现第一个节点已经是Leader,于是它会将自己注册为Follower,并只监听选举端口。**但是!**由于你是在单机上模拟集群,第二个节点会复用第一个节点已经监听的集群端口,导致第一个节点的集群端口被抢占,从而无法监听。
    3. 第三个节点启动: 同第二个节点。

    解决方案:

    1. 不要在同一台机器上使用相同的端口: 这是最简单直接的解决方案。修改配置文件,确保三个节点使用不同的集群端口:

      # 节点 1
      clientPort=2181
      server.1=0.0.0.0:2888:3888
      server.2=0.0.0.0:2889:3889
      server.3=0.0.0.0:2890:3890
      
      # 节点 2
      clientPort=2182
      server.1=0.0.0.0:2891:3891
      server.2=0.0.0.0:2892:3892
      server.3=0.0.0.0:2893:3893
      
      # 节点 3
      clientPort=2183
      server.1=0.0.0.0:2894:3894
      server.2=0.0.0.0:2895:3895
      server.3=0.0.0.0:2896:3896
      
    2. 使用不同的IP地址: 如果你坚持要在同一台机器上模拟,可以为每个节点配置不同的IP地址,例如使用127.0.0.1, 127.0.0.2, 127.0.0.3等。

    3. 使用Docker模拟: 使用Docker可以方便地创建隔离的网络环境,为每个ZooKeeper节点分配独立的IP地址和端口。

    额外建议:

    • 在生产环境中,强烈建议使用真正的ZooKeeper集群,而不是单机伪集群。
    • 使用netstat -anp | grep 2888 (将2888替换成你想要查看的端口) 命令可以查看端口占用情况,帮助你排查问题。

    希望以上信息能够帮助你解决ZooKeeper单机伪集群配置问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月9日
  • 修改了问题 8月7日
  • 修改了问题 8月7日
  • 赞助了问题酬金20元 8月7日
  • 展开全部