ZOOKEEPER的一些理解和运行机制
Zookeeper是一个分布式协调服务,为用户的分布式应用程序提供协调服务;
Zookerper是为别的分布式程序服务的;
Zookerper本身也是一个分布式程序;
以上的概念怎么去理解呢,其实很简单,看下面的图
从图中可以清晰的看出,servers层就可以看做是Zookerper,做到承上启下的作用。
思考1:假如用户管理服务出现故障挂掉了,那怎么去处理?
这时候就会引入一个新的概念,心跳。中间的服务层对用户管理服务统一管理,假设3次没收心跳,那就将节点添加到垃圾回收站,这样就可以随服务有效的去操作。
思考2:中间层的作用和提供的功能。
为分布式系统提供协调的服务
- 为用户提供数据注册、查询的功能
- 管理用户的状态
- 为用户提供监听器的功能
思考3:zookerper的运行过程的选举。
- 需要加入数据version、id、逻辑时钟(参与过的选举次数)
- 数据版本谁新选谁
- 选举的结果如果逻辑时钟为小的,则忽略,统一逻辑时钟,选id大的
- 假如3台机器,连续开启时,第二台是leader,其他的都为follow