凤凰架构阅读记录-三(分布式算法)

news2024/9/22 17:35:08

1.Paxos

世界上只有一种共识协议,就是 Paxos,其他所有共识算法都是 Paxos 的退化版本。

算法流程:

1.提案节点:称为 Proposer,提出对某个值进行设置操作的节点,设置值这个行为就被称之为提案(Proposal),值一旦设置成功,就是不会丢失也不可变的。请注意,Paxos 是典型的基于操作转移模型而非状态转移模型来设计的算法,这里的“设置值”不要类比成程序中变量赋值操作,应该类比成日志记录操作,在后面介绍的 Raft 算法中就直接把“提案”叫作“日志”了。


2.决策节点:称为 Acceptor,是应答提案的节点,决定该提案是否可被投票、是否可被接受。提案一旦得到过半数决策节点的接受,即称该提案被批准(Accept),提案被批准即意味着该值不能再被更改,也不会丢失,且最终所有节点都会接受该它。


3.记录节点:被称为 Learner,不参与提案,也不参与决策,只是单纯地从提案、决策节点中学习已经达成共识的提案,譬如少数派节点从网络分区中恢复时,将会进入这种状态。
使用 Paxos 算法的分布式系统里的,所有的节点都是平等的,它们都可以承担以上某一种或者多种的角色,不过为了便于确保有明确的多数派,决策节点的数量应该被设定为奇数个,且在系统初始化时,网络中每个节点都知道整个网络所有决策节点的数量、地址等信息。

4.paxos时序图如下:

2.Gossip 协议

“最终一致性”的分布式共识协议:Gossip 协议

 Gossip 的具体工作过程

 1.如果有某一项信息需要在整个网络中所有节点中传播,那从信息源开始,选择一个固定的传播周期(譬如 1 秒),随机选择它相连接的 k 个节点(称为 Fan-Out)来传播消息。

2.每一个节点收到消息后,如果这个消息是它之前没有收到过的,将在下一个周期内,选择除了发送消息给它的那个节点外的其他相邻 k 个节点发送相同的消息,直到最终网络中所有节点都收到了消息,尽管这个过程需要一定时间,但是理论上最终网络的所有节点都会拥有相同的消息。


Gossip消息传播模式 

1.反熵(Anti-Entropy): 反熵的意思就是反混乱,以提升网络各个节点之间的相似度为目标,所以在反熵模式下,会同步节点的全部数据,以消除各节点之间的差异,目标是整个网络各节点完全的一致。但是,在节点本身就会发生变动的前提下,这个目标将使得整个网络中消息的数量非常庞大,给网络带来巨大的传输开销。

2.传谣(Rumor-Mongering): 传谣模式是以传播消息为目标,仅仅发送新到达节点的数据,即只对外发送变更信息,这样消息数据量将显著缩减,网络开销也相对较小。

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

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

相关文章

【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率)

【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率) 目录 【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率) 一、 K-NN 简介 二、K-NN 分类 三、K-NN 分类实例 1、1-NN 分类 : 此时 A 类别…

leetcode 859. Buddy Strings(同伴字符串)

给出字符串s 和 goal, 判断交换 s 中的一对字母是否能得到goal. 必须是不同位置字母的交换。 思路&#xff1a; 先考虑边界情况&#xff0c; s 和 goal 的长度不相等时&#xff0c;s 怎么交换都不会得到goal. s 的长度 < 2时&#xff0c;没有可交换对象&#xff0c;肯定是…

【力扣】94、二叉树的中序遍历

94、二叉树的中序遍历 注&#xff1a;二叉树的中序遍历&#xff1a;左根右&#xff1b; // 非递归&#xff1a; var inorderTraversal function (root) {const arr [];//创建新数组&#xff1b;const stack [];//创建一个栈道&#xff1b;let o root;while( stack.length |…

办公实现降本增效,可借助微服务开源平台的力量!

在如今的快节奏发展时代&#xff0c;低代码开发平台拥有了一个广阔的发展天地&#xff0c;逐渐在通信业、医疗、物流、高校等众多大中型企业中获得一个立足之地&#xff0c;是助力企业提质、降本、增效的得力助手。微服务开源平台可以让企业实现这一目的&#xff0c;那么对于企…

AMBER分子动力学能量优化与分析、结合自由能计算专题

AMBER分子动力学能量优化与分析、结合自由能计算专题 第一天 时间:AM9:00~9:50 内容:六.分子动力学入门理/论 教学目标&#xff1a;了解本方向内容、理论基础、研究意义。 主要知识点:4分子力学简介 4.1分子力学的基本假设 4.2分子力学的主要形式 5分子力场 5.1分子力场的简…

passware kit forensic使用

一、从外部注册表文件提取密码 适用于不联网的情况下&#xff0c;例如2023盘古石杯的NAS取证 找到Windows/System32/config并在本地打开 将路径填充到config folder中 跑出来了John电脑对应的密码是paofen&#xff0c;NAS的密码是P88w0rd 后续遇见再补

Linux - 那些年测试服务器带宽的 3 种方式

方式一 speedtest-cli wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pychmod x speedtest-cliorcurl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pychmod x speedtest-c…

【Linux】基础开发工具——yum篇

目录 &#x1f4d6;Linux下安装软件的三种方案&#x1f4f0;源代码安装&#x1f4f0;rpm安装&#x1f4f0;yum安装 &#x1f4d6;Linux软件包管理器yum&#x1f4f0;rz、sz&#x1f4f0;查看软件包&#x1f4f0;软件安装&#x1f4f0;软件删除 &#x1f4d6;yum源问题&#x1f…

Hadoop:DataNode启动失败:Initialization failed for Block pool

一、问题发现 ​在启动Hadoop集群后&#xff0c;发现原本应该是启动三台机子的数据节点&#xff0c;结果只有一台node2成功启动&#xff0c;另外两台&#xff08;node1、node3&#xff09;并没有启动&#xff0c;如下两图所示&#xff1a; 问题描述&#xff1a; ​确认配置信…

day3 QT对话框

目录 QDialog 标准对话框&#xff08;Standard Dialogs&#xff09;&#xff1a; 内置对话框&#xff08;Built-in Dialogs&#xff09;&#xff1a; 自定义对话框&#xff08;Custom Dialogs&#xff09; 示例 myqdialog.h widget.h myqdialog.cpp widget.cpp QDialog Q…

springboot实现网络图片转存的临时文件后上传腾讯云cos

有时复制一张图片url&#xff0c;想转存到自己的腾讯云cos保存。 实现思路是&#xff1a;先将网络图片url保存到当前项目一个临时文件夹里&#xff0c;然后发送腾讯云cos对象存储&#xff0c;返回一个url&#xff0c;最后&#xff0c;删除该临时文件图片。 测试结果 1. util实…

【C】分支和循环语句

目录 【1】什么是语句 【2】分支语句&#xff08;选择结构&#xff09; 【2.1】if 语句 【2.1.1】语法结构 【2.1.2】悬空else 【2.1.3】书写形式的对比 【2.1.4】练习 【2.2】switch 语句 【3.2.1】语法结构 【3.2.2】在switch语句中的 break 【3.2.3】default子句…

Nginx【Nginx场景实践(fair模块安装、Nginx配置故障转移、跨域问题、跨域问题解决)】(九)-全面详解(学习总结---从入门到深化)

目录 Nginx场景实践_fair模块安装 Nginx场景实践_Nginx配置故障转移 Nginx场景实践_跨域问题 Nginx场景实践_跨域问题解决 Nginx场景实践_fair模块安装 模块介绍 fair采用的不是内建负载均衡使用的轮换的均衡算法&#xff0c;而是可以根据 页面大小、加载时间长短智能的进…

C++(Day5)

思维导图&#xff1a; 全局变量&#xff0c;int monster 10000;定义英雄类hero&#xff0c;受保护的属性string name&#xff0c;int hp,int attck&#xff1b;公有的无参构造&#xff0c;有参构造&#xff0c;虚成员函数 void Atk(){blood-0;}&#xff0c;法师类继承自英雄类…

客户案例:构建可靠海外通邮系统,护航教育行业信息安全

►►►客户背景 某985高校作为一所国内知名的高等教育机构&#xff0c;拥有优质的师生资源和丰富的教学经验&#xff0c;积极开展与国外高校的合作交流&#xff0c;组织师生参与出国交流、学术考察等活动&#xff0c;在跨境科研合作和人才培养等领域开展深入合作&#xff0c;推…

2023-07-03:讲一讲Redis缓存的数据一致性问题和处理方案。

2023-07-03&#xff1a;讲一讲Redis缓存的数据一致性问题和处理方案。 答案2023-07-03&#xff1a; 数据一致性 当使用缓存时&#xff0c;无论是在本地内存中缓存还是使用 Redis 等外部缓存系统&#xff0c;会引入数据同步的问题。下面以 Tomcat 向 MySQL 中进行数据的插入、…

《操作系统》- 操作系统的发展与分类

目录 前言一、手工操作阶段1.1 人工操作方式1.2 脱机输入/输出方式 二、批处理阶段2.1 单道批处理系统2.2 多道批处理系统 三、分时操作系统四、实时操作系统五、微机操作系统的发展六、总结 前言 从第一台计算机诞生至今已过去70多年了&#xff0c;在这期间&#xff0c;计算机…

Python程序设计基础:程序流程控制(二)

文章目录 一、循环结构1、for语句2、while语句3、break和continue语句4、循环结构中的else语句5、循环的嵌套 一、循环结构 最基本的复杂工作就是循环&#xff0c;要想写出的程序能够执行更加复杂的工作&#xff0c;就需要将循环问题进行实现。 1、for语句 for语句用一个循环…

【剧前爆米花--爪哇岛寻宝】网络原理——ip地址管理,路由选择和数据链路层数据帧

作者&#xff1a;困了电视剧 专栏&#xff1a;《JavaEE初阶》 文章分布&#xff1a;这是一篇关于网络原理的文章&#xff0c;在这篇文章中我会具体介绍ip地址的分配管理&#xff0c;信息传输的路由选择以及以以太网来举例的数据链路层数据帧&#xff0c;希望对你有所帮助&#…

IDE /Qt Creator 文本编辑器之文件编码设置

文章目录 概述"QtCreator 文件编码" 配置项的使用效果将代码文件修改为GB2312编码"QtCreator 文件编码" 配置项的功能不会影响qml文件的加载方式改动pro文件的编码格式?其他 概述 在 Qt Creator 工具 - 选项 - 文本编辑器 - 行为选项卡中&#xff0c;存在…