集群环境安装
在zookeeper集群中,各个节点总共有三种角色,分别是:leader,follower,observer 集群模式我们采用模拟3台机器来搭建 zookeeper 集群。 分别复制安装包到三台机器上并解压,同时 copy 一份zoo.cfg。
1. 修改配置文件 修改端口
server.1=IP1:2888:3888 【2888:访问zookeeper的端口; 3888:重新选举leader的端口】
server.2=IP2.2888:3888
server.3=IP3.2888:2888 server.A=B:C:D:
其中A是一个数字,表示这个是第几号服务器; B是这个服务器的 ip地址; C表示的是这个服务器与集群中的Leader 服务器交换信息的端口; D表示的是万一集群中的Leader服务器挂 了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于B都是一样,所以不同的zookeeper实例通信端口号不能一样,所以要给它们分配不同的端口号。 在集群模式下,集群中每台机器都需要感知到整个集群是由哪几台机器组成的,在配置文件中,按照格式server.id=host:port:port,每一行代表一个机器配置id: 指的是serverID,用来标识该机器在集群中的机器序号。
2. 创建myid文件
在每台zookeeper机器上设置myid,我们都需要在数据目录(dataDir)下创建一个myid文件,该文件只有一行内容,对应每台机器的ServerID数字;比如server.1的myid文件内容就是1。【必须确保每个服务器的myid文件中的数字不同,并且和自己所在机器的zoo.cfg中server.id的id值一致,id的范围是1~255】
3. 启动zookeeper,带Observer角色的集群
Observer:在不影响写性能的情况下扩展zookeeper 本身zookeeper的集群性能已经很好了,但是如果超大量的客户端访问,就势必需要增加zookeeper集群的服务器数量,而随着服务器的增加,zookeeper集群的写性能就会下降;zookeeper中znode的变更需要半数及以上服务器投票通过,而随着机器的增加,由于网络消耗等原因必定会导致投票成本增加,也就导致性能下降的结果。