4、负载均衡
- 用户连接网络集群中的进程,如果没有做策略,可能会出现一种情况就是:有些进程连接用户巨多,而有些进程很少有用户连接,这样就造成某些进程的负载过大,而影响正常服务器的运行。
- 基于这样的考虑,我们需要设计一些均衡策略,让用户能够均匀的分布到不同的进程上,这就叫负载均衡。
就好比,刚才每个程序员轮流加班,三班倒,这样整个系统还是能运作下去。
5、分布式系统
- 多个提供不同服务的集群组成一个完整的高可用架构,就是基础的分布式系统。
- 如上图所示,拥有不同功能的服务集群组成的一个大的系统就是分布式系统。
- 分布式系统需要满足 高可用、高可靠、高性能、高并发。
而刚才小T成立的公司,就好比一个分布式系统。
- 接下来,我们对 高可用、高性能、高并发、高可靠进行一些简单的解释。
1)高可用
- 如果一个服务能够正常使用,那么我们称之为 “可用”,比如你现在能看到这篇文章,说明网站处于 “可用” 状态。
- 可用性定义为在足够长的时间里,一个服务可用的时间,服务可用时间越长越好。
- 一般用可服务时间除于总时间算出一个百分比,用百分比作为度量。比如一个服务如果有 5 个 9 的可用性,指的就是一年里 99.999% 时间里服务都是可用的。
- 按照年度可用性,来看一个表格:
可用时间百分比 | 可用时间(天) | 全年故障(天) | 全年故障(可视单位) |
---|---|---|---|
90% | 365天 x 90% = 328.5天 | 36.5天 | > 1个月 |
99% | 365天 x 99% = 361.35天 | 3.65天 | 3.65 天 |
99.9% | 365天 x 99.9% = 364.635天 | 0.365天 | 8.76 小时 |
99.99% | 365天 x 99.99% = 364.9635天 | 0.0365天 | 52.56 分钟 |
99.999% | 365天 x 99.999% = 364.99635天 | 0.000365天 | 5.26 分钟 |
- 这个表格什么意思呢?
- 从上至下, 9 的个数越多,则代表系统的可用性越高。
- 同样,按照月度可用性,我们同样可以得到一个表格如下:
可用时间百分比 | 故障时间 |
---|---|
90% | 3天 |
99% | 7.2小时 |
99.9% | 43.2分钟 |
99.99% | 4.32分钟 |
99.999% | 25.92秒 |
2)高可靠
- 可靠性定义为一个服务连续无故障运行的时间,无故障运行的时间越长,可靠性就越高。
- 那么可靠性和可用性的区别在哪里呢?
- 想象有一个服务,可靠性很高,平均来说可以稳定运行一百年,但是一旦服务中断,要用十年的时间来恢复,那么它的可用性只有 90%;而另一个服务,可靠性很差,运行 10秒 就会宕机,但是恢复服务只需要1ms, 那么它的可用性是 99.99%。