9 ,zk 架构模型

    xiaoxiao2023-11-17  165

    一 ,leader 与 follower

    1 ,架构图 :

    2 ,zk 集群一个什么类型的集群 :主备集群

         1 个主节点,其它全是备份节点。

    3 ,过半原则 :

         在 zk 的框架中,要想做点什么,不是看一台机器,而是看全体机器,需要有一半以上的机器同意才能办。例如新增数据,是否新增成功,不是看一台两台机器是否成功的存储了数据,而是要看整个集群,超过一半的机器成功的存储到数据,才认为存储成功了。

    4 ,为什么我们的 zk 集群需要 3 台机器 ?

    zookeeper 集群启动也是要遵循过半原则的 : 要超过一半的机器启动,才认为整个集群已经启动了。zookeeper 集群需要有奇数台机器,比如 3 台,只要有 2 台机器启动成功,就认为集群启动成功了。为什么不能 1 台,1 也是奇数 :当然不行,如果一共才一台,那就不叫集群了,也就没有了数据的备份了,这台机器如果坏了,数据就没了,zookeeper 是干嘛的,不就是为了高可用嘛,不就是为了备份嘛。为什么不能两台:因为两台,没有办法过半,只能达到一半,不能超过一半。所有的偶数都不好办,都不容易造成过半。结论:除了 1 以外,最小的奇数就是 3 了。也可以 5 台机器,但是我们同学的电脑都是普通电脑,禁不起 5 台虚拟机的消耗,所以我们最后决定用 3 台。

    5 ,主节点 :leader

    负责处理数据更新等操作( 遵守 zab 协议 )。zab 协议简介 :( 了解 ) 1 ,消息广播 :为了数据的一致性,leader 将数据内容通知整个集群。 2 ,崩溃恢复 :如果 leader 挂了,那么 zookeeper 集群,将会从 follower 中重新选举一个 leader

    6 ,备份节点 :follower

    可以接受客户端请求。可以自行解决查询任务。不可以擅自进行数据更新操作,数据更新操作必须严格经过 leader 来操作。选举:如果 leader 挂了,follower 之间可以互相投票,注意喽,follower 也是有可能成为 leader 的。

    二 ,Observer ( 观察者节点 )

    1 ,完整的 zookeeper 架构模型 :

    2 ,zookeeper 集群中的节点,其实有 3 种角色 :

    leader :集群中的主节点。 是整个集群的管理者,参与集群的全部工作内容,可以支配从节点。follower :集群中的从节点 ( 备份节点 )。 集群中的备份节点,服从 leader 的命令,当 leader 挂了以后,follower 参与选举,每个 follower 都有成为 leader 的可能性。 所以,就算 leader 挂了也不会怎么样,follower 之间可以重新选一个 leader 出来,zookeeper 集群依然可以正常工作。observer :集群中的观察者节点。 功能跟 follower 相似,但是不参与 leader 选举,就相当于 observer 是一个世外高人,他只干活,他不是 leader ,也不是 follower ,他只想要过平淡的生活,他不投票给任何人,他自己也拒绝被人家投票,他就相当于永远只做集群的备份节点。

    3 ,observer 的配置 :( 了解 )

    假如,我们存在第四台机器,那么,我们要在第四台机器的 zoo.cfg 文件中加这么一行 : # 本节点是 observer 节点 peerType=observer 第四台机器的 myid 文件内容 : 4 每一台机器的 zoo.cfg 文件都加这样的一行配置 : # 第四台机器是 observer 节点 server.4:node04:2181:3181:observer

    4 ,observer 作用 :提高性能

        由于观察节点不参与写请求过程中达成共识的投票,因此使用观察节点可以让ZooKeeper集群在不影响写性能的情况下提高读操作的性能。

    最新回复(0)