分布式基础(一)基本概念

异常

1. 服务器宕机

内存错误、服务器停电等都会导致服务器宕机,此时节点无法正常工作,称为不可用。

服务器宕机会导致节点失去所有内存信息,因此需要将内存信息保存到持久化介质上。

2. 网络异常

有一种特殊的网络异常称为 **网络分区** ,即集群的所有节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信。

3. 磁盘故障

磁盘故障是一种发生概率很高的异常。

使用冗余机制,将数据存储到多台服务器。

超时

在分布式系统中,一个请求除了成功和失败两种状态,还存在着超时状态。

可以将服务器的操作设计为具有 **幂等性** ,即执行多次的结果与执行一次的结果相同。如果使用这种方式,当出现超时的时候,可以不断地重新请求直到成功。

衡量指标

1. 性能

常见的性能指标有:吞吐量、响应时间。

其中,吞吐量指系统在某一段时间可以处理的请求总数,通常为每秒的读操作数或者写操作数;响应时间指从某个请求发出到接收到返回结果消耗的时间。

这两个指标往往是矛盾的,追求高吞吐的系统,往往很难做到低响应时间,解释如下:

– 在无并发的系统中,吞吐量为响应时间的倒数,例如响应时间为 10 ms,那么吞吐量为 100 req/s,因此高吞吐也就意味着低响应时间。

– 但是在并发的系统中,由于一个请求在调用 I/O 资源的时候,需要进行等待。服务器端一般使用的是异步等待方式,即等待的请求被阻塞之后不需要一直占用 CPU 资源。这种方式能大大提高 CPU 资源的利用率,例如上面的例子中,单个请求在无并发的系统中响应时间为 10 ms,如果在并发的系统中,那么吞吐量将大于 100 req/s。因此为了追求高吞吐量,通常会提高并发程度。但是并发程度的增加,会导致请求的平均响应时间也增加,因为请求不能马上被处理,需要和其它请求一起进行并发处理,响应时间自然就会增高。

2. 可用性

可用性指系统在面对各种异常时可以提供正常服务的能力。可以用系统可用时间占总时间的比值来衡量,4 个 9 的可用性表示系统 99.99% 的时间是可用的。

3. 一致性

可以从两个角度理解一致性:从客户端的角度,读写操作是否满足某种特性;从服务器的角度,多个数据副本之间是否一致。

有以下三种一致性模型:

1. 强一致性:新数据写入之后,在任何数据副本上都能读取到最新值;
2. 弱一致性:新数据写入之后,不能保证在数据副本上能读取到最新值;
3. 最终一致性:新数据写入之后,只能保证过了一个时间窗口后才能在数据副本上读取到最新值;

4. 可扩展性

指系统通过扩展集群服务器规模来提高性能的能力。理想的分布式系统需要实现“线性可扩展”,即随着集群规模的增加,系统的整体性能也会线性增加。

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » 分布式基础(一)基本概念

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多