ZOOKEEPER的一些理解和运行机制

Zookeeper是一个分布式协调服务,为用户的分布式应用程序提供协调服务;

Zookerper是为别的分布式程序服务的;

Zookerper本身也是一个分布式程序;

以上的概念怎么去理解呢,其实很简单,看下面的图

ZOOKEEPER的一些理解和运行机制

从图中可以清晰的看出,servers层就可以看做是Zookerper,做到承上启下的作用。

思考1:假如用户管理服务出现故障挂掉了,那怎么去处理?

这时候就会引入一个新的概念,心跳。中间的服务层对用户管理服务统一管理,假设3次没收心跳,那就将节点添加到垃圾回收站,这样就可以随服务有效的去操作。

思考2:中间层的作用和提供的功能。

为分布式系统提供协调的服务

  1. 为用户提供数据注册、查询的功能
  2. 管理用户的状态
  3. 为用户提供监听器的功能

思考3:zookerper的运行过程的选举。

  • 需要加入数据version、id、逻辑时钟(参与过的选举次数)
  •  数据版本谁新选谁
  • 选举的结果如果逻辑时钟为小的,则忽略,统一逻辑时钟,选id大的
  • 假如3台机器,连续开启时,第二台是leader,其他的都为follow