单机模式的主要问题是:性能受限,存在单节点失效问题。
数据并行(数据分布式):多台计算机并行执行多个相同的任务。缩短了所有任务的整体执行时间,但对提升单个任务的执行性能及降低时延无效。
任务并行(任务分布式):指将单个复杂的任务拆分为多个子任务,从而使得多个子任务可以在不用的计算机上并行执行。提供了更好的性能,扩展性,可维护性,但带来设计复杂性问题。
1.分布式是什么?
分布式就是将相同或相关的程序运行在多台计算机上,从而实现特定目标的一种计算方式。数据并行,任务并行都是分布式的一种形态。
2.分布式的目的:
用更多的机器,处理更多的数据和更复杂的任务
3.分布式系统的重要指标:
性能、资源、可用性、可扩展性
常见的性能指标:
- 吞吐量:系统在一定时间内可以处理的任务数
- QPS:查询数每秒,衡量一个系统每秒处理的查询数。通常用于读操作
- TPS:事务数每秒,衡量一个系统每秒处理的事务数。通常用于写操作
- BPS:比特数每秒,衡量一个系统每秒处理的数据量。
- 响应时间:系统响应一个请求或输入需要花费的时间。
- 完成时间:系统真正完成一个请求或处理需要花费的时间。
资源占用:
一个系统提供正常能力需要占用的硬件资源,比如 CPU、内存、硬盘等
- 空载资源占用:一个系统在没有任何负载时的资源占用。比如安装一个app没有允许占用的资源。
- 满载资源占用:一个系统满额负载时的资源占用。
可靠性与可用性的区别:
**可靠性:**通常用来表示一个系统完全不出故障的概率,更多地用在硬件领域。
**可用性:**更多的是指在允许部分组件失效的情况下,一个系统对外仍能正常提供服务的概率。
可扩展性:
可扩展性,指的是分布式系统通过扩展集群机器规模提高系统性能 (吞吐量、响应时间、 完成时间)、存储容量、计算能力的特性。