分布式一致性问题

news2024/2/27 15:11:49

什么是分布式一致性问题呢?简单来说,就是在一个分布式系统中,有多个节点,每个节点都会提出一个请求,但是在所有节点中只能确定一个请求被通过。而这个通过是需要所有节点达成一致的结果,所以所谓的一致性就是在提出的所有请求中能够选出最终一个确定请求。

并且这个请求选出来以后,所有的节点都要知道。

这个就是典型的拜占庭将军问题

拜占庭将军问题说的是:拜占庭帝国军队的将军们必须通过投票达成一致来决定是否对某一个国家发起进攻。但是这些将军在地里位置上是分开的,并且在将军中存在叛徒。叛徒可以通过任意行动来达到自己的目标:

1. 欺骗某些将军采取进攻行动

2. 促使一个不是所有将军都统一的决定,比如将军们本意是不希望进攻,但是叛徒可以促成进攻行动

3. 迷惑将军使得他们无法做出决定

如果叛徒达到了任意一个目标,那么这次行动必然失败。只有完全达成一致那么这次进攻才可能胜利

拜占庭问题的本质是,由于网络通信存在不可靠的问题,也就是可能存在消息丢失,或者网络延迟。如何在这样的背景下对某一个请求达成一致。

为了解决这个问题,很多人提出了各种协议,比如大名鼎鼎的Paxos; 也就是说在不可信的网络环境中,按照paxos这个协议就能够针对某个提议达成一致。

所以:分布式一致性的本质,就是在分布式系统中,多个节点就某一个提议如何达成一致

这个和Google Chubby有什么关系呢

在Google有一个GFS(google file system),他们有一个需求就是要从多个gfs server中选出一个master server。这个就是典型的一致性问题,5个分布在不同节点的server,需要确定一个master server,而他们要达成的一致性目标是:确定某一个节点为master,并且所有节点要同意。 

而GFS就是使用chubby来解决这个问题的。

实现原理是:所有的server通过Chubby提供的通信协议到Chubby server上创建同一个文件,当然,最终只有一个server能够获准创建这个文件,这个server就成为了master,它会在这个文件中写入自己 的地址,这样其它的server通过读取这个文件就能知道被选出的master的地址

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.cn/news/show-830715.html

如若内容造成侵权/违法违规/事实不符,请联系七分地网进行投诉反馈,一经查实,立即删除!

相关文章

can1--can初探

updating http://download.csdn.net/detail/songqqnew/4399668 http://download.csdn.net/detail/songqqnew/4399670http://download.csdn.net/detail/songqqnew/4399684mcp2515寄存器一览 几个寄存器名称及地址 TXBnCTRL——发送缓冲器n 控制寄存器(地址&#xff1…

Michael Nygard on Building Resilient Systems

原文 InfoQ.Feature Complete Software 和 Production Ready Software是不同的。而很多时候,开发人员不清楚Production下的情况,所以没有很好的考虑到在Production下运行的情况。例如,在开发环境下,Sever A和Server B的压力是 1&…

python开发_tkinter_单选按钮

这篇blog主要是描述python中tkinter的单选按钮操作 下面是我做的demo 运行效果: 代码部分: 1 from tkinter import *2 3 # This is a demo program that shows how to4 # create radio buttons and how to get other widgets to5 # share the informat…

多继承有什么坏处,为什么java搞单继承,接口为什么可以摈弃这些坏处

2019独角兽企业重金招聘Python工程师标准>>> 多继承虽然能使子类同时拥有多个父类的特征,但是其缺点也是很显著的,主要有两方面: (1)如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧…

提取身份证信息-阶段1 图像处理

目标 为了实现pc端,提取一张拍摄的身份证照片中人物的信息,照片背景单一且为浅色,初步使用图像处理知识进行处理。 由浅入深,第一步,使用简单的图片,并且有针对性的对某幅图片进行针对性处理,得…

xfce下thunar启动慢解决

为什么80%的码农都做不了架构师?>>> sudo vim /usr/share/gvfs/mounts/network.mount 查找: AutoMounttrue 修改成: AutoMountfalse 转载于:https://my.oschina.net/walle/blog/162803

0100-Same Tree(相同的树)

这个系列算是出于个人兴趣开的一个新坑吧,最近看到同学刷LeetCode算法题,就想写写那些可以一行Python代码写出来的题目,因此本专栏的文章的解题方式效率不做保证,只为追求“一行的浪漫”。 题目 题解 给你两棵二叉树的根节点 p 和…

iphone数据存储之-- Core Data的使用(一)

转自:http://www.cnblogs.com/xiaodao/archive/2012/10/08/2715477.html 一、概念 1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型…

redis scan 效率太慢_Redis 基础、高级特性与性能调优(下)

数据淘汰机制Redis提供了5种数据淘汰策略:volatile-lru:使用LRU算法进行数据淘汰(淘汰上次使用时间最早的,且使用次数最少的key),只淘汰设定了有效期的keyallkeys-lru:使用LRU算法进行数据淘汰,所有的key都…

理解WebKit和Chromium: Web应用和Web运行环境

转载请注明原文地址:http://blog.csdn.net/milado_nju注:鉴于这一领域非常热,自己也投身其中,会单独开辟一个专题介绍Web应用和Web运行环境。## 概述Web已经从web网页向web应用(web application)方向发展&a…

kafka 削峰_从面试角度一文学完 Kafka

Kafka 是一个优秀的分布式消息中间件,许多系统中都会使用到 Kafka 来做消息通信。对分布式消息系统的了解和使用几乎成为一个后台开发人员必备的技能。今天就从常见的 Kafka 面试题入手,和大家聊聊 Kafka 的那些事儿。思维导图讲一讲分布式消息中间件问题…

第二类斯特林数入门

推荐博客 : https://www.cnblogs.com/gzy-cjoier/p/8426987.html 转载于:https://www.cnblogs.com/ccut-ry/p/9510200.html

jQuery性能优化

2019独角兽企业重金招聘Python工程师标准>>> jQuery性能优化 现在越来越多的人应用jQuery了,有些同学在享受爽快淋漓coding时就将性能问题忽略了, 比如我. jquery虽在诸多的js类库中性能表现还算优秀, 但毕竟不是在用原生的javascript开发, 性能问题还是…

算法模板-双指针

简介 在很多数组问题中,双指针是一个反复被提及的解法。所谓双指针,指的是在对象遍历的过程中,并非单个指针进行访问,而是使用两个同向(快慢指针)或者反向(对撞指针)来进行扫描&…

python 控制qq_最必要的最小建议集:写给刚入门编程(python)的同学

写给谁刚准备入手学习python编程的大学生或者研究生。你为什么学python当你做实验(生物信息学,地理信息学,计量经济学,心理学,运筹学,图像处理,语音处理,信号处理,嵌入式…

Delphi XE5 for Android (十一)

以下内容是根据Delphi的帮助文件进行试验的,主要测试Android下的消息提醒。 首先建立一个空白的Android工程,然后在窗体中加入一个TNotificationCenter控件,如下图: 再在uses中引用文件,如下: usesFMX.Plat…

List、Array与ArrayList

2019独角兽企业重金招聘Python工程师标准>>> 数组在内存中是连续存储的,所以它的索引速度很快,而且赋值和修改元素也非常快,比如: string[] snew string[3]; //赋值s[0]"a"; s[1]"b"; s[2]"c…

int main(int argc,char * argv[]) windows 下的使用

通常对于初学C语言的同学来说,我们的main函数,都是没有形参的,那么这是怎么回事呢? 根据C语言规定,main函数的参数只能有两个,习惯上这两个参数为argc和argv,格式如下: int main(int…

牛客 - sequence(笛卡尔树+线段树)

题目链接:点击查看 题目大意:给出一个长度为 n 的数列 a 和数列 b ,求 题目分析:不算难的题目,对于每个 a[ i ] 求一下贡献然后维护最大值就好,具体思路就是,先找出每个 a[ i ] 左右两侧分别小…

ByteTrack实时多目标跟踪

去年的1024我写了一篇FairMOT实时多目标跟踪,兜兜转转,一年过去了,最近FairMOT原作者发布了更快更强的ByteTrack,也就有了这篇文章,有种恍如隔世之感。 简介 ByteTrack是近期公开的一个新的多目标跟踪SOTA方法&#x…