前言
1. 分布式是什么?
分布式其实就是将相同或相关的程序运行在多台计算机上,从而实现特定目标的一种计算方式。产生分布式的最主要驱动力量,是我们对于性能、可用性及可扩展性的不懈追求。
单机模式 -> 数据并行(也叫作数据分布式)模式 -> 任务并行(也叫作任务分布式)模式。
何时采用数据并行或者任务并行呢?一个简单的原则就是:任务执行时间短,数据规模大、类型相同且无依赖,则可采用数据并行;如果任务复杂、执行时间长,且任务可拆分为多个子任务,则考虑任务并行。在实际业务中,通常是这两种模式并用。
2. 分布式系统的指标
性能、资源、可用性和可扩展性
是分布式系统的重要指标。没错,它们就是分布式系统的“三围”。
性能
包括:
- 吞吐量(Throughput):QPS(Queries Per Second)、TPS(Transactions Per Second)和 BPS(Bits Per Second)
- 响应时间(Response Time)
- 完成时间(Turnaround Time)
资源占用
看空载资源占用
和 满载资源占用
。
可用性
看系统停止服务的时间与总的时间之比衡量
或某功能的失败次数与总的请求次数之比来衡量
。
可扩展性
可扩展性,指的是分布式系统通过扩展集群机器规模提高系统性能 (吞吐量、响应时间、 完成时间)、存储容量、计算能力的特性,是分布式系统的特有性质。也就是水平扩展系统规模。
好的分布式系统总是在追求“线性扩展性”
,也就是说系统的某一指标可以随着集群中的机器数量呈线性增长。
衡量系统可扩展性的常见指标是加速比
(Speedup),也就是一个系统进行扩展后相对扩展前的性能提升。