介绍
如果业务不复杂也不要求一定要使用分布式系统,单机的维护成本和易用性非常高。
如果你想要高可用的服务那就需要多机器的系统了,如果你的客户服务量非常大这样也会有瓶颈,需要多加机器去维护服务。慢慢的机房架构越来越复杂,就需要分布式系统来统筹这些机器来运算和存储了。
什么是分布式系统
分布式系统可以调度并管理数台服务器的 CPU 来并行执行任务。
分布式系统可以调度数台服务器的网络资源。
分布式系统可以调度并管理数台服务器的存储资源。
可以伸缩性的扩容活撤掉部分机器。
为什么要使用分布式系统
可以并行的使用数台计算机的算力还执行任务。而且还可以通过多机房备份实现高可用性,可以存储海量的数据。
分布式系统的难题。
CPU 的并发协调。
多计算机就会有部分故障的不稳定性。
多机房网络通讯的不稳定性。
CPU 利用率的问题,他不是 1 + 1 = 2 的问题,多台计算机组成分布式系统,为了考虑高可用,强一致,容错性能会有很多损耗。
分布式系统的三大特性。
- 分区容错性
- 强一致性
- 高可用性
分区容错性
数千台服务器在线,网络环境不确定,容易出现故障。
汲取恢复运行,可以进行数据恢复。
容错性是在部分计算机不工作的情况下,还可以继续提供高可用或强一致的服务。服务使用不受影响。
强一致性
强一致性即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免。
我们在一些业务场景下可以追求分区强一致性,跨机房弱一致性,因为如果所有机房的数据都是强一致性,将会导致系统的性能下降,维护成本非常高。
高可用性
高可用性即服务一直可用,而且是正常响应时间。好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。正常的高可用性一般是通过多机房或多城市数据中心备份的方式完成的。