分布式技术概况
按照业务的架构层次栈,自底向上按照资源、通信、数据与计算的维度 4个技术层次。
分布式资源池化、分布式通信、分布式数据存储与管理、分布式计算
这样的划分符合业务架构设计的一般规律,即“在一定资源上,进行一定通信,通过一定计算,完成一定数据的加工和处理,从而对外提供特定的服务”
在分布式的环境下, 这4大技术层次都要去解决另外4个技术层面的问题,包括分布式协同、分布式调度、分布式追踪与高可用、分布式部署 4 个纵向技术线
原图出处 https://time.geekbang.org/column/article/139888

分布式资源池化
解决资源的分布式和异构性问题
CPU,内存,GPU,网络等物理资源虚拟化,形成逻辑资源池以便统一管理
如 k8s
集中式结构
非集中式结构
AKKA集群
分布式通信
解决进程之间的分布式通信问题
通过消息队列,远程调用,订阅发布等方式,实现简单高效的通信
如 akka
分布式数据存储与管理
解决数据的分布式和多元化问题
分布式数据库,分布式文件系统,分布式缓存,支持不同类型数据的存储和管理
分布式计算
解决应用的分布式计算问题
基于分布式计算模式,包括批处理任务计算,离线计算,在线计算,融合计算等
根据应用类型构建高效智能的分布式计算框架
分布式协同
解决分布式状态及数据的一致性问题
分布式互斥,分布式选举,分布式共识,分布式事务
分布式互斥
对于同一共享资源,一个程序正在使用的时候也不希望被其他程序打扰。这,就要求同一时刻只能有一个程序能够访问这种资源
在分布式系统里,这种排他性的资源访问方式,叫作分布式互斥(Distributed Mutual Exclusion),而这种被互斥访问的共享资源就叫作临界资源(Critical Resource)
集中式算法
分布式算法
令牌环算法
分布式选举
主节点,在一个分布式集群中负责对其他节点的协调和管理,也就是说,其他节点都必须听从主节点的安排。主节点的存在,就可以保证其他节点的有序运行,以及数据库集群中的写入数据在每个节点上的一致性。这里的一致性是指,数据在每个集群节点中都是一样的,不存在不同的情况
Bully 算法
民主投票:Raft 算法
ZAB 算法
分布式共识
PoW
PoS
DPoS
一致性与共识的区别是什么
分布式事务
事务(Transaction)提供一种机制,将包含一系列操作的工作序列纳入到一个不可分割的执行单元。只有所有操作均被正确执行才能提交事务;任意一个操作失败都会导致整个事务回滚(Rollback)到之前状态,即所有操作均被取消。简单来说,事务提供了一种机制,使得工作要么全部都不做,要么完全被执行,即 all or nothing
事务具备四大基本特征 ACID
什么是 BASE 理论
基于 XA 协议的二阶段提交协议方法
三阶段提交协议方法
第一,CanCommit 阶段。
第二,PreCommit 阶段。
第三,DoCommit 阶段。
基于消息的最终一致性方法
Redis和Zookeeper 中的分布式协同算法
分布式调度
解决资源与请求者的匹配问题
单体调度,双层调度,共享调度
任务存在优先级,那当我们需要执行多个任务的时候,通常需要满足优先级高的任务优先执行的条件。但在这些条件中,服务器资源能够满足用户任务对资源的诉求是必须的。而为用户任务寻找合适的服务器这个过程,在分布式领域中叫作调度。在分布式系统架构中,调度器就是一个非常重要的组件。它通常会提供多种调度策略,负责完成具体的调度工作。
单体调度
两层调度
共享状态调度
分布式追踪与高可用
解决分布式定位,可靠性问题
分布式日志搜集,分布式问题建模,负载均衡,流量控制,故障隔离,故障恢复
分布式部署
解决服务分布式部署问题
自动化,智能化部署
计算模式的区别
单机模式
所谓单机模式是指,所有应用程序和数据均部署在一台电脑或服务器上,由一台计算机完成所有的处理
缺点:性能受限、存在单点失效问题
数据并行或数据分布式
任务并行或任务分布式
分布式系统的指标
分布式系统的出现就是为了用廉价的、普通的机器解决单个计算机处理复杂、大规模数据和任务时存在的性能问题、资源瓶颈问题,以及可用性和可扩展性问题。换句话说,分布式的目的是用更多的机器,处理更多的数据和更复杂的任务
性能
吞吐量
QPS
TPS
BPS
响应时间
完成时间
资源占用
可用性
可扩展性
文档信息
- 本文作者:Jessica
- 本文链接:https://jessica0530.github.io/2020/09/10/%E5%88%86%E5%B8%83%E5%BC%8F%E6%8A%80%E6%9C%AF/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)