论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
Oracle
›
架构06-分布式共识
架构06-分布式共识
商道如狼道
金牌会员
|
2024-12-4 16:52:03
|
显示全部楼层
|
阅读模式
楼主
主题
842
|
帖子
842
|
积分
2526
零、文章目次
架构06-分布式共识
1、分布式共识
(1)基本概念
**分布式共识:**在分布式系统中,多个节点之间告竣一致的过程。
**复杂性来源:**网络的不可靠性和哀求的并发性。
**应用场景:**如何确保重要数据长期存储在电脑上不会丢失。
(2)数据备份与系统可靠性
磁盘备份:
使用多块磁盘备份数据,降低数据丢失概率。
例如,使用四块磁盘保存同一份数据,数据丢失的概率仅为0.0000625%。
软件系统可靠性:
单个节点系统宕机的原因多样,如程序错误、硬件损坏、网络分区等。
通过多台机器拥有数据副本,进步系统的可靠性。
(3)系统可用性挑战
动态数据同步:
数据同步方法如2PC、3PC,确保数据在多个节点间一致。
**缺点:**增加Slave节点会增加系统可用性风险。
状态转移 vs 操作转移:
**状态转移:**确保全部节点状态一致,但捐躯可用性。
**操作转移:**通过操作日记广播,允许内部状态不一致,但最终状态一致。
(4)高可用与高可靠性的平衡
Quorum机制:
通过“少数服从多数”原则,容忍部分节点失联,进步系统可用性。
例如,凌驾半数节点完成状态转换,即可认为数据变革成功。
2、Paxos算法
(1)Paxos算法简介
**提出者:**Leslie Lamport。
**职位:**分布式系统最重要的理论根本之一。
**配景:**Paxos算法的提出和被认可经历了多次妨害。
(2)Paxos算法的工作流程
节点角色:
**Proposer:**提出提案。
**Acceptor:**应答提案,决定提案是否被接受。
**Learner:**学习已告竣共识的提案。
工作流程:
准备阶段(Prepare):
Proposer向全部Acceptor广播Prepare哀求,附带提案ID。
Acceptor复兴Promise应答,承诺不再接受ID小于等于n的Prepare哀求和ID小于n的Accept哀求。
答应阶段(Accept):
Proposer收到多数Acceptor的Promise应答后,选择符合的值,广播Accept哀求。
Acceptor在不违背承诺的条件下,吸收并长期化提案值。
共识告竣:
Proposer收到多数Acceptor的Accepted应答后,共识告竣,通知Learner。
(3)Paxos算法的范围性
缺陷:
只能对单个值形成决议。
至少需要两次网络哀求和应答,高并发下网络开销大。
**活锁题目:**多个提案节点各执己见,导致系统“反复横跳”。
**非常场景:**由于提案节点的完全平等和并发提案,系统复杂性增加。
现实应用:
现实应用中多使用Multi Paxos和Fast Paxos等改进版本。
3、Multi Paxos 的改进
(1)核心改进
**核心改进:**增加“选主”过程。
选主机制:
定时轮询(心跳)确定当前主节点。
心跳超时后,节点使用 Basic Paxos 的准备、答应过程竞选主节点。
得到多数派答应后,竞选成功。
主节点角色:
只有主节点可以提出提案。
从节点吸收到客户端哀求后,将哀求转发给主节点。
主节点提案时,无需再次经过准备过程,只需答应即可。
(2)数据复制过程
正常情况:
主节点将变更写入日记,广播给从节点。
从节点写入日记,复兴确认消息。
主节点收到过半数确认后,提交变更,应答客户端,广播提交消息。
从节点提交变更,完成数据复制。
非常情况:
**网络分区:**部分节点失联,但仍能正常工作的节点数量满足多数派要求。
**分区规复:**主节点通过任期编号确定唯一性,回滚未提交的变更,同步失联期间的变更。
(3)安全性包管
**Safety(协定性):**确保选主结果唯一,不会出现多个主节点。
**Liveness(停止性):**选主过程最终能够结束。
**活锁题目:**理论上存在选主无法结束的风险,但现实工程实现中几乎不会出现。
(4)Raft 算法
**核心思想:**将共识题目分解为三个子题目:
Leader Election:选主题目。
Entity Replication:数据复制题目。
Safety:安全性包管。
**应用:**etcd、LogCabin、Consul 等分布式程序的根本。
4、Gossip 协议
(1)特点
实用于最终一致性场景。
无中心化节点,节点平等。
高鲁棒性,适合公众互联网。
(2)工作过程
信息源选择固定周期,随机选择 k 个节点传播消息。
收到消息的节点在下一个周期内,将消息发送给 k 个节点,直到全网一致。
(3)缺点
状态不一致时间长。
消息冗余,增加网络传输压力。
(4)传播方式
**反熵:**同步全部数据,消除节点差别。
**传谣:**仅发送变更信息,减少网络开销。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
商道如狼道
金牌会员
这个人很懒什么都没写!
楼主热帖
【python】实现文章同步csdn社区自动化 ...
SQLI-LABS(Less-5)
到底什么是小程序插件?
MySQL数据库安装
MVCC - Read View的可见性判断理解 ...
SAP集成技术(十)混合集成平台 ...
Scrum 框架的四个会议还适用于哪些敏捷 ...
微信小程序云开发中的command简介 ...
如何利用ipad随时随地开发代码 ...
django 报错 'set' object is ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表