附属意义的扩容:扩容的新增节点为观察者observer
1.观察者概念:
a.在zookeeper引入此新的zookeeper节点类型为observer,是为了帮助处理投票成本随着追随者增加而增加的问题并且进一步完善了zookeeper的可扩展性
b.观察者不参与投票,他只监听投票的结果,但是观察者可以和追随者一样运行;也即 客户端可以连接到观察者状态的服务器发起读取和写入的请求,会像追随者一样转发请求到领导者,而观察者只是简单的等待监听投票的结果
c.观察者数量不会影响到投票性能,因此观察者不是zookeeper集群整体的主要节点,观察者产生故障或者从集群中断开连接都不会影响到集群的性能
2.意义:
a.在实际使用中,观察者可以连接到比追随者更不可靠的网络;
b.事实上,观察者可以用于从其他数据中心和zookeeper服务器通信
3.优点:
a.提升集群的读性能,对写性能影响很小
b.可以将observer部署在异地机房,读请求就近发起,降低延迟
4.缺点:
a.对写操作有一定的影响:观察者所在的服务器处于无监控状态,无法保证数据都同步成功了,可能会因为网络原因造成一些写入请求被丢弃等
b.如果observer部署异地机房,写同步的延迟可能会增加
c.源集群的稳定性没有提高
5.observer扩容配置:
a.假设扩容的observer服务器为server.6 & server.7
b.重新在bigdata01上解压并重命名为observerZK01 || observerZK02
c.并且在conf/zoo.cfg文件中进行以下配置:
i.dataDir=/home/software/observerZK01/tmp
||
dataDir=/home/software/observerZK02/tmp
ii.clientPort= 2184
||
clientPort=2185
iii.添加声明当前zk服务器类型为observer server的属性:
peerType=observer
iv. 在构建集群地址时,需要将配置为观察者的主机后添加上观察者标记:observer
server.1=192.168.88.182:2888:3888
server.2=192.168.88.183:2888:3888
server.3=192.168.88.184:2888:3888
server.4=192.168.88.182:2889:3889
server.5=192.168.88.182:2890:3890
server.6=192.168.88.182:2891:3891:observer
server.7=192.168.88.182:2892:3892:observer
a.分别在tmp目录下新建并设置 myid编号为 6 || 7
d. 启动服务器 并且查看此时服务器的状态是否为observer:
e. 连接到observer服务器的客户端: ./observerZK02/bin/zkCli.sh -server slave02:2185