Zookeeper 实现原理

一直以来只知道Zookeeper是一个分布式协调组件,但究竟其中的原理一直也没深究过,今天看了一点书籍及文章,在此总结一下自己的心得。

这里写图片描述

Zookeeper的概念
Zookeeper是一个分布式的、开源的分布式应用程序协调服务,包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等,它是Google的 Chubby一个开源实现。

Zookeeper的特点
1 简单: Zookeeper的核心是一个精简的文件系统,提供一此简单的操作和额外的抽象操作,如排序和通知。
2 富有表现力: Zookeeper的原语操作是一组丰富的“构件”,可用于实现很多协调数据结构和协议,如分布式队列、分布式锁和“领导者选举”等。
3 高可用: Zookeeper运行于一组机器这上,通过是奇数个节点,如3、5节点,本身具有高可用性。它可以帮助系统避免出现单点故障。
4 松耦合: Zookeeper支持的交互过程中,参与者不需要彼此了解。
5 资源库: Zookeeper提供一个关于通用协调模式实现和方法的开源共享存储库。

Zookeeper的实现
Zookeeper有两种运行模式,一种是“独立模式”,即只有一个Zookeeper节点,这种模式不具有高可用性。另外一种是“复制模式”,即有一组Zookeeper服务运行于多个节点,组合一个“集合体”,Zookeeper通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够提供服务。一个集合体中通常包含奇数个节点。
Zokeeper实现过程主要包括两个步骤,
1 领导者选举
Zookeeper集合体中所有机器通过一个选择过程选出一台机器作为“领导者”(leader),其余机器称为“跟随者”(follower)。一时半数以上的follower状态与leader同步,表明这个阶段已经完成。

2 原子广播
所有写请求都被转发给leader,leader再将更新广播给follower。当半数以上的follower将更新持久化后,leader才会提交更新响应给客户端。
如果leader故障,其余机器会再选出一个leader并提供服务。如果之前的leader恢复正常,就转换为follower。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值