分布式系统
2021-11-16 09:53:11 0 举报
AI智能生成
分布式系统
作者其他创作
大纲/内容
分布式协调与同步
分布式互斥
集中式管理
具有简单、易于实现的特点,但可用性、性能易受协调者影响。
分布式算法
分布式算法是一个“先到先得”和“投票全票通过”的公平访问机制,但通信成本较高,可用性也比集中式算法低,适用于临界资源使用频度较低,且系统规模较小的场景。
令牌环算法
令牌环算法的公平性高,在改进单点故障后,稳定性也很高,适用于系统规模较小,并且系统中每个程序使用临界资源的频率高且使用时间比较短的场景。
两层结构的分布式令牌环算法
分布式共识
pow
dpos
pos
分布式锁
定义
分布式环境下,系统部署在多个机器中,实现多进程分布式互斥的一种锁。为了保证多个进程能看到锁,锁被存在公共存储(比如Redis、Memcache、数据库等三方存储中),以实现多个进程并发访问同一个临界资源,同一时刻只有一个进程可访问共享资源,确保数据的一致性。
实现方法
基于数据库分布式锁
适用于并发量低,对性能要求低的场景
基于数据库实现分布式锁比较简单,绝招在于创建一张锁表,为申请者在锁表里建立一条记录,记录建立成功则获得锁,消除记录则释放锁。该
缺点
单点故障
数据库不可用 整个系统崩溃
死锁问题
数据库锁没有失效时间,未获得锁的进程只能一直等待已获得锁的进程主动释放锁。一旦已获得锁的进程挂掉或者解锁操作失败,会导致锁记录一直存在数据库中,其他进程无法获得锁。
基于缓存实现
优点
性能更好。数据被存放在内存,而不是磁盘,避免了频繁的IO操作
很多缓存可以跨集群部署,避免了单点故障问题。
很多缓存服务都提供了可以用来实现分布式锁的方法,比如Redis的setnx方法等。
可以直接设置超时时间来控制锁的释放,因为这些缓存服务器一般支持自动删除过期数据。
不足
超时时间来控制锁的失效时间,并不是十分靠谱
基于zookeeper
基于zookeeper特性:临时节点
缺点
频繁增删节点,性能不如缓存分布式锁
ZooKeeper分布式锁的可靠性最高,有封装好的框架,很容易实现分布式锁的功能,并且几乎解决了数据库锁和缓存式锁的不足,因此是实现分布式锁的首选方法。
如何解决羊群效应
背景
是在整个分布式锁的竞争过程中,大量的“Watcher通知”和“子节点列表的获取”操作重复运行,并且大多数节点的运行结果都是判断出自己当前并不是编号最小的节点,继续等待下一次通知,而不是执行业务逻辑。
解决方式
向比自己序号小的最后一个写请求节点注册watch监听,当监听到该节点释放锁后,则获取锁;
分布式体系结构
集中式结构
定义
一台或多台服务器组成中央服务器,系统内的所有数据都存储在中央服务器中,系统内所有的业务也均先由中央服务器处理。多个节点服务器与中央服务器连接,并将自己的信息汇报给中央服务器,由中央服务器统一进行资源和任务调度:中央服务器根据这些信息,将任务下达给节点服务器;节点服务器执行任务,并将结果反馈给中央服务器
经典结构
google borg
非集中式结构
分布式计算
mapreduce
分而治之
一个复杂的、难以直接解决的大问题,分割成一些规模较小的、可以比较简单的或直接求解的子问题,这些子问题之间相互独立且与原问题形式相同,递归地求解这些子问题,然后将子问题的解合并得到原问题的解。
抽象模型
map
分解
reduce
汇总
stream
背景
处理实时性任务主要是针对流数据的处理,对处理时延比较高,通常需要常驻进程
特点
持续、快速
数据规模庞大
实时性要求高
顺序性无法保证
用于处理数据密集型应用。
持续性、低时延、事件驱动型的计算作业。
步骤
提交流失计算作业
种常驻计算服务
实时流数据
实时计算结果
应用场景
网路监控
传感检测
ARVR
音视频流
框架和平台
商业级流计算平台
开源流计算框架
自身业务触发的流计算框架
举例
storm
actor
流水线
分布式缓存
流量控制
漏桶策略
令牌桶
衡量指标
性能
吞吐量
qps
查询数每秒
用于读操作,越高说明对读操作的支持越好
tps
事务数每秒
这个指标通常对应于写操作,越高说明对写操作的支持越好。
bps
比特数每秒
反应系统的吞吐量
响应时间
对于时延敏感的业务非常重要
完成时间
资源
硬件资源
CPU
内存
磁盘
可用性
衡量了系统的鲁棒性,是系统容错能力的体现。
扩展性
通过扩展集群机器规模提高系统性能(吞吐、响应时间、 完成时间)、存储容量、计算能力的特性,是分布式系统的特有性质。
常见指标是加速比(Speedup
场景指标
电商
吞吐量最重要
IoT
资源占用
电信
响应时间、完成时间、可用性
大数据
扩展性
云计算
分布式选主
算法
bully
长着为大
raft
多数派投票选举
选举速度快、算法复杂度低、易于实现的优点;缺点是,它要求系统内每个节点都可以相互通信,且需要获得过半的投票数才能选主成功,因此通信量大。该算法选举稳定性比Bully算法好,这是因为当有新节点加入或节点故障恢复后,会触发选主,但不一定会真正切主,除非新节点或故障后恢复的节点获得投票数过半,才会导致切主。
zab
具备优先级的民主投票
分布式事务
含义
是在分布式系统中运行的事务,由多个本地事务组合而成
事务特征
ACID
BASE
关键点:最终一致性替代强一致性
实现
基于XA二阶段提交
ACID
资源管理器
分布式事务的参与者,通常由数据库实现
事务管理器
作为协调者,负责各个本地资源的提交和回滚
过程
投票
提交
思路
协调者下发请求事务操作,参与者将操作结果通知协调者,协调者根据所有参与者的反馈结果决定各参与者是要提交操作还是撤销操作。
不足
同步阻塞问题
单点故障问题
数据不一致问题
三阶段提交协议
ACID
描述
对二阶段提交的升级,引入超时机制和准备阶段
三阶段
cancommit
precommit
docommit
基于消息的最终一致性
BASE
异步执行
引入消息队列MQ
分布式训练
含义
利用分布式集群,将多个计算机的存储n能力,计算能力等进行统一管理和调度,从而实现模型训练
技术
数据分布式训练
针对大规模训练数据的场景
数据的拆分方法、数据的分布式存储和管理
节点之间需要通信交互信息
模型分布式训练
指将大模型进行拆分
分而治之策略
混合模型训练
针对大规模训练数据和大模型训练共存的场景。将数据分布式训练和模型分布式训练结合起来
分布式调度
调度策略
单体调度
一个集群中只有一个节点运行调度进程,该节点对集群中的其他节点具有访问权限,可以搜集其他节点的资源信息、节点状态等进行统一管理,同时根据用户下发的任务对资源的需求,在调度器中进行任务与资源匹配,然后根据匹配结果将任务指派给其他节点。
分布式存储
分布式数据复制
0 条评论
下一页