分布式锁服务

用于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通过复制获取最新列表。

chubby 分布式实现原理相关推荐

  1. zookeeper 分布式锁原理

    zookeeper 分布式锁原理: 1 大家也许都很熟悉了多个线程或者多个进程间的共享锁的实现方式了,但是在分布式场景中我们会面临多个Server之间的锁的问题,实现的复杂度比较高.利用基于googl ...

  2. 《从Paxos到zookeeper分布式一致性原理与实践》笔记

    <从Paxos到zookeeper分布式一致性原理与实践>笔记 文章目录 <从Paxos到zookeeper分布式一致性原理与实践>笔记 一.概念 二.一致性协调 2.1 2P ...

  3. 《从Paxos到zookeeper分布式一致性原理与实践》

    <从Paxos到zookeeper分布式一致性原理与实践> 一.概念 ACID: Automaticy.consistency.isolation. Durability CAP: con ...

  4. 从Paxos到Zookeeper:分布式一致性原理与实践

    网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击"普通下载" ...

  5. [201502][从 Paxos 到 ZooKeeper][分布式一致性原理与实践][倪超][著]

    [201502][从 Paxos 到 ZooKeeper][分布式一致性原理与实践][倪超][著] http://zookeeper.apache.org 第 1 章 分布式架构 1.1 从集中式到分 ...

  6. api 创建zookeeper客户端_zookeeper分布式锁原理及实现

    前言 本文介绍下 zookeeper方式 实现分布式锁 原理简介 zookeeper实现分布式锁的原理就是多个节点同时在一个指定的节点下面创建临时会话顺序节点,谁创建的节点序号最小,谁就获得了锁,并且 ...

  7. chubby分布式锁服务概述

    分布式锁与chubby 分布式锁,是控制分布式系统之间同步访问共享资源的一种方式.Chubby是一种面向松耦合的分布式系统的锁服务,通常用于为一个由适度规模的大量小型计算机构成的的松耦合的分布式系统提 ...

  8. Elasticsearch分布式一致性原理剖析(一)-节点篇

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: ES目前是最流行的开源分布式搜索引擎系统,其使用Lucene作为单机存储引擎并提供强大的搜索查询能力.学习其搜索原理, ...

  9. ES 的分布式架构原理能说一下么?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://8rr.co/Gs9a 面试题 ...

最新文章

  1. flannel 的连通与隔离 - 每天5分钟玩转 Docker 容器技术(61)
  2. cocos 时间函数需要什么引用_2021国家公务员考试时间是什么时候 国考备考时间需要多久...
  3. *:学习心得——C语言----S1T62班 王作舟
  4. golang连接mysql报错:this authentication plugin is not supported 解决方案
  5. 第一章 TensorFlow基础——python语法(二)
  6. Flash务实主义(五)——AS3的垃圾回收(转)
  7. 成都东软学院新生周赛(五)
  8. 通过Web Services上传和下载图片文件
  9. sqlite关于时间的处理
  10. 程序员需不需要数学知识?
  11. 开机未发现nvidia控制面板_Nvidia控制面板打不开,怎么办?
  12. 中国高校改名(总结篇)(转载)
  13. 华为 华三 思科常用命令
  14. 争冠,在路上?还是渐行渐远?
  15. 浏览器如何工作~(转)
  16. 【ng-alain】解决sf设置了visibleIf的字段,默认执行required验证
  17. xp系统网上邻居看不到局域网电脑_win10系统网上邻居看不到局域网中其他电脑的处理技巧...
  18. 数字图像处理——拉普拉斯算子【像素级别处理】(python)
  19. 这些朋友更适合苹果电脑,你了解吗?
  20. 服务器操作系统该选 Debian/Ubuntu 还是 CentOS?

热门文章

  1. YOLOv6 Pro | YOLOv6网络魔改 (1) ——RepGFPN融合高效聚合网络(ELAN)和重参数化的目标检测Neck(来自DAMO-YOLO)
  2. 日志logger的使用
  3. MySQL索引之全文索引(FULLTEXT)之创建和删除
  4. 沈阳师范大学大一上册C语言PTA题目集以及答案(第六章 指针 编程题篇)
  5. 为什么要做搜狗推送?搜狗推送工具介绍
  6. JS: 算法时间复杂度分析
  7. gremlin3.3.3 第三部分 - 1-图的遍历(3)
  8. AutoCAD.Net圆弧半径标注延长线
  9. 恒玄BES调试笔记-BES2500 avrcp
  10. “AI Earth”人工智能创新挑战赛:助力精准气象和海洋预测Baseline[3]:TCNN+RNN模型、SA-ConvLSTM模型