写在前面

本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见100个问题搞定大数据理论体系

解答

分布式系统主要从4个角度来进行衡量:
1.性能
2.可用性
3.可扩展性
4.一致性

补充

性能

无论是分布式系统还是单机系统,都会对性能(performance)有所要求。 对于不同的系统,不同的服务,关注的性能不尽相同、甚至相互矛盾。

常见的性能指标

  1. 吞吐量,指系统在某一时间可以处理的数据总量,通常可以用系统每秒处理的总的数据量来衡量;
  2. RT,响应延迟,指系统完成某一功能需要使用的时间;
  3. 系统的并发能力,指系统可以同时完成某一功能的能力,通常也用QPS(query per second)来衡量。 当然也可以通过 TPS (transaction per second)进行衡量,一般可以认为 QPS 等同于 TPS

TPS 和 QPS 的区别

TPS 和 QPS 的区别在于:TPS代表事务,QPS只是请求。 比如:订单系系统订单提交 QPS 1000,但是其中50%的订单都是两次提交才成功,那么实际 TPS 只有 500 / 2 + 500 = 750。

上述三个性能指标往往会相互制约,追求高吞吐的系统,往往很难做到低延迟;系统平均响应时间较长时,也很难提高 QPS。

可用性

可用性指的是系统服务能正常运行所占的时间百分比。

系统的可用性(availability)指系统在面对各种异常时可以正确提供服务的能力。

系统的可用性可以用系统停服务的时间与正常服务的时间的比例来衡量,也可以用某功能的失败次数与成功次数的比例来衡量。

可用性是分布式的重要指标,衡量了系统的鲁棒性,是系统容错能力的体现。

可扩展性

系统的可扩展性(scalability)指分布式系统通过扩展集群机器规模提高系统性能(吞吐、延迟、并发)、存储容量、计算能力的特性。

扩展性包括水平和垂直,水平扩展是增加水平类似的机器打群架方式,垂直扩展是现有的每个人提升实力,提升整体实力;

一致性

分布式系统为了提高可用性,总是不可避免的使用副本的机制,从而引发副本一致性的问题。

根据具体的业务需求的不同,分布式系统总是提供某种一致性模型,并基于此模型提供具体的服务。

越是强的一致的性模型,对于用户使用来说使用起来越简单。

Q.E.D.


大数据开发工程师,精通 Spark,擅长 Java 和 Scala