chubby 分布式实现原理

分布式锁服务

用于GFS 和 bigtable,解决分布式协作、云数据存储、选主

运用了paxos协议

 

将chubby 实现为分布式锁服务 而非paxos算法协议库的考虑:

1、对上层应用入侵小

相比封装了paxos协议的客户端库而言,分布式锁服务入侵性更小,容易保持原有网络通信方式

2、便于提供数据发布、订阅

用于选主时的广播。而且发布订阅与锁服务在一致性特性上相类似

3、基于锁的接口更友好

接口和单机锁机制相近,比一个paxos协议库更友好

4、构建可靠服务更便捷

通常分布式都有quorum机制(过半机制)。若仅仅提供paxos协议库,那么这种机制需要开发人员自行处理。

 

设计目标

1、完成独立的分布式锁服务,而非一致性客户端库

2、提供粗粒度锁服务,针对客户端长时间持有锁的场景

3、提供小文件读写功能

4、高可用、高可靠

5、提供事件消息通知

 

技术架构

典型的架构 5台服务器

副本用paxos协议选主

选主成功后,chubby 在master租期内,保证不会有其他服务器成为master

master要不断续租

master宕机后,重新选主

只有master可以执行写操作

 

客户端定位master

向DNS 获取服务器列表,逐个请求询问是否master

非master服务器将master所在server 标识返回客户端

 

master 写操作响应

对写请求,master用paxos 协议广播给其他副本

在过半数的server响应后,再响应给客户端

 

master 崩溃

master 崩溃后,其他server 在master 租期到期后,重新选主。

 

普通server崩溃

不影响集群其他server。崩溃恢复后,自动加入chubby集群。

先同步数据,完成同步后 开始协同

 

若普通server崩溃后太久无法恢复, 加入新机器,启动chubby服务段程序。更新DNS 列表,

master 轮询DNS 列表,将集群中数据库的地址列表做变更,其他server通过复制获取最新列表。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值