zookeeper总结-动态添加节点
1.比如现在有zk服务节点node1,node2,node3;之前自己一直以为是直接在node4上配置node1,node2,node3,node4的cluster地址,然后启动node4的zk服务,然后node4的zk服务就能加入到node1,node2,node3这个zk集群里;
现在发现不行,node4启动后客户端无法连接上去,它也不会同步node1/node2/node3上的数据;
必须是旧节点node1,node2,node3的zoo.cfg配置里的集群配置也加上node4才行,即所有节点的集群配置必须要保持一致,然后旧节点也要重启一下,旧节点加上新节点集群配置重启后,再来启动新的集群节点node4;这个时候node4就能同步集群数据了,客户端也能访问它了;
想想确实应该这个逻辑,不然就有漏洞了,随便一个新节点就能拉取其他集群的数据会造成数据泄漏的风险,不过感觉zk可以优化下旧集群动态load配置而不用重启类似nginx一样
通过bin里有个./zkServer.sh start/stop来启动或停止(还有个zkServer-initialize.sh是用于初始化,只需执行一次)
2.zookeeper里配置一般会配置3个端口,即客户端访问的2181和2888和3888;其中2888是要leader节点才会绑定这个端口,普通节点不会绑定;
3.zookeeper集群节点数最好是奇数个;
4.zookeeper运行配置里的集群节点存在部分没有起来
5.zookeeper配置myid里的值要和集群配置里的server.1的1对应,每个节点的myid值不一样;
6.客户端配置集群地址时其中可以包括没有启动的节点,也可以只配置集群中的部分节点
posted on 2023-05-13 19:17 Silentdoer 阅读(620) 评论(0) 编辑 收藏 举报