架构与思维:4大主流分布式算法介绍(图文并茂、算法拆解)

 介绍

本文聚焦高并发场景下分布式一致性算法的分析和讨论

分布式场景下困扰我们的3个核心问题(CAP):一致性、可用性、分区容错性。

1、一致性(Consistency): 无论服务如何拆分,所有实例节点同一时间看到是相同的数据

2、可用性(Availability): 不管是否成功,确保每一个请求都能接收到响应

3、分区容错性(Partition Tolerance): 系统任意分区后,在网络故障时,仍能操作

image

而我们最为关注的是如何在高并发下保障 Data Consistency(数据一致性),因为在很多核心金融业务场景(如 支付、下单、跨行转账)中,为了避免资金问题,是需要强一致性结果的。而分布式一致性算法就是保障 Data Consistency的强大利刃,它的目标是确保分布式系统中多个节点在读取或修改同一份数据时,产生相同结果的关键机制。这些算法对于保证分布式系统的一致性和可靠性至关重要。常用的分布式算法:

  1. Paxos算法

  2. Raft算法

  3. ZAB(ZooKeeper Atomic Broadcast)算法

2 主流分布式算法

2.1 Paxos算法

Paxos算法是一种用于分布式系统中保障一致性的算法,由Leslie Lamport于1990年提出,被广泛应用于分布式系统中的一致性问题,如分布式数据库、分布式存储系统等。该算法的主要目标是在一个由多个节点组成的分布式系统中,协调某个数据值并达成一致性,典型的少数服从多数的案例。

2.1.1 基本概念

1. 提案: 由提案号(id)和提案内容(value)组成,其中id主要用于实现Paxos算法,而value对应在实际的分布式系统中为所需要修改数据的命令 或者 log信息。

2. 角色: Paxos算法中抽象出来的概念,对应着实际分布式环境中的不同分工。主要角色包括提议者(Proposer)、批准者(Acceptor)和学习者(Learner)。

  • 提议者负责提出值的提案

  • 接受者负责接受提案并投票

  • 学习者负责学习已经达成一致的值

    <
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值