BATJ架构

Zookeeper中的常见术语

2020-06-26  本文已影响0人  裘马轻狂大帅

Zookeeper中的术语

Zookeeper集群通常是用来以用户的分布式应用程序提供协调服务,为了保证数据的一致性,对zookeeper进行了三种角色划分:

leader: 负责进行投票的发起和决议,更新系统状态。

follower: 用于接收客户端请求并向客户端返回结果以及在选举过程中参与投票。

observer(观察者): 也可以接收客户端连接,将写请求转发给leader节点,但是不参与投票过程,只同步leader状态。通常是对查询操作做负载。

为什么Zookeeper的节点是奇数

在每台机器数据保持一致的情况下zookeeper集群中,leader的作用就体现出来了,只有leader节点才有权利发起修改数据的操作,而follower节点即使接收到了客户端发起的修改操作,也要将其转交给leader来处理,leader接收到修改数据的请求后,会向所有follower广播一条消息,让他们执行某项操作,follower 执行完后,便会向 leader 回复执行完毕。当 leader 收到半数以上的 follower 的确认消息,便会判定该操作执行完毕,然后向所有 follower 广播该操作已经生效。所以zookeeper集群中leader是不可缺少的,但是 leader 节点是怎么产生的呢?其实就是由所有follower 节点选举产生的,讲究民主嘛,而且leader节点只能有一个,毕竟一个国家不能有多个leader

容错率

首先从容错率来说明:(需要保证集群能够有半数进行投票)2台服务器,至少2台正常运行才行(2的半数为1,半数以上最少为2),正常运行1台服务器都不允许挂掉,但是相对于 单节点服务器,2台服务器还有两个单点故障,所以直接排除了。

3台服务器,至少2台正常运行才行(3的半数为1.5,半数以上最少为2),正常运行可以允许1台服务器挂掉。

上一篇下一篇

猜你喜欢

热点阅读