首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
《分布式技术原理与算法解析》学习笔记Day02 ...
返回列表
发新帖
《分布式技术原理与算法解析》学习笔记Day02
[复制链接]
发表于 2023-2-5 22:26:00
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
分布式系统发展历程
分布式的发展过程经历了三个阶段:
单机模式(单兵模式)
数据并行或者数据分布式(游击队模式)
任务并行或者任务分布式(集团军模式)
什么是单机模式,它的优缺点是什么?
单机模式是指所有应用程序和数据均步数在同一台电脑或者
服务器
上,由一台计算机完成所有的处理。
它的好处是
功能
、
代码
和数据集中,便于维护、管理和执行。
它的主要问题是
性能
受限、存在单点失败的问题。
什么是数据分布式模式,它的优缺点是什么?
它是指采用消息共享模式使用多台计算机并行运行或者执行多任务,核心原理是每台计算机上执行相同的程序,将数据进行拆分放到不同的计算机上进行计算。它强调对数据进行拆分,任务程序在每台机器上运行。
将程序从单机模式进化到数据分布式模式,需要两个步骤:
将应用和数据分离,分别部署到不同的
服务器
上。
对数据进行拆分,将同一类型的数据拆分到两个甚至更多的
数据库
中,这样应用
服务器
上的任务就可以针对不同数据并行执行了。
这种模式的好处在于可以利用多台计算机并行处理多个请求,使得我们可以在相同的时间内完成更多的请求处理,解决了单机模式的计算效率瓶颈问题。
这种模式的主要问题是对提升单个任务的执行
性能
及降低时延无效。
什么是任务分布式模式,它的优缺点是什么?
它是指将单个复杂的任务拆分为多个子任务,从而使得多个子任务可以在不同的计算机上并行执行。
任务并行模式完成一项复杂任务包括两个核心步骤:
将单任务拆分成多个子任务。
让多个子任务并行执行。
这种模式的好处在于提升了
性能
、扩展性和可维护性,它的主要问题是带来了设计上的复杂性。
什么是分布式?
分布式指将相同或者相关的程序运行在多台计算机上,从而实现特定目标的一种计算方式。
数据并行和任务并行都算是分布式的一种形态。
如何选择数据并行还是任务并行呢?一个简单的原则:任务执行时间短,数据规模大,类型相同且无依赖,则采用数据并行;任务复杂,执行时间长,任务可拆分,则可以考虑任务并行。在实际项目中,我们往往会两种模式并用。
分布式系统的衡量标准
分布式的目的是用更多的机器,处理更多的数据和更复杂的任务。
性能、资源、可用性和可扩展性是分布式系统的重要指标。
性能指标
主要用来衡量一个系统处理各种任务的能力。常见的性能指标包括
吞吐量、响应时间和完成时间
。
吞吐量指系统在一定时间内可以处理的任务数。常见的吞吐量包括QPS、TPS和BPS:
QPS,即查询数每秒,用于衡量一个系统每秒处理的查询数,通常用于读操作,越高说明对读操作的支持越好。
TPS,即事务数每秒,用于衡量一个系统每秒处理的事务数,通常用于写操作,越高说明对写操作的支持越好。
BPS,即比特数每秒,用于衡量一个系统每秒处理的数据量。
响应时间
是指系统响应一个请求或输入需要花费的时间。它直接影响用户体验,对于时延敏感的业务非常重要。
完成时间是指系统真正完成一个请求或处理需要花费的时间。
资源占用
是指一个系统提供正常能力需要占用的硬件资源,例如CPU、内存、硬盘等。
有两个资源占用情况需要注意:
空载资源占用,一个系统再没有任何
负载
时的资源占用。
满载资源占用,一个系统满负荷时的资源占用。
可用性
是指系统在面对各种异常时可以正确提供服务的能力。
可用性有两种不同的衡量方式:
系统停止服务时间与总的时间之比
某
功能
的失败次数与总的请求次数之比
可靠性(Reliability)与可用性(Availability)有什么区别?
可靠性是指一个系统完全不出故障的概率,更多用于硬件领域。
可用性是指在允许部分组件失效的情况下,一个系统对外仍能正常提供服务的概率。
可扩展性
是指分布式系统通过扩展集群机器规模提高系统性能(吞吐量、响应时间、完成时间)、
存储
容量、计算能力的特征,是分布式系统的特有性质。
衡量可扩展性的常见指标是加速比(Speedup),也就是一个系统进行扩展后相对扩展前的性能提升。
上述这些测量指标,有些指标会彼此约束。不同的分布式系统,针对测量指标,会有不同的侧重:
电商系统最看重吞吐量。
IoT最看重资源占用指标。
电信业务最看重响应时间、完成时间以及可用性。
HPC看到通过水平扩展提供系统的加速比。
大数据最看重可扩展性。
云计算最看重资源开销。
区块链最看重吞吐量和完成时间。
出处: 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
回复
使用道具
举报
返回列表
浏览过的版块
分布式数据库
DevOps与敏捷开发
区块链
SQL-Server
SAAS
数据仓库与分析
前端开发
物联网
Oracle
钜形不锈钢水箱
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表