分布式技术-学习笔记1
四纵四横的知识体系
横向的四横为业务架构逻辑
在一定资源上,进行一定的通信,实现一定的计算,进行一定的数据处理和存储,并最终对外提供一定的服务。
纵向的四纵为支撑业务的纵向技术栈
每一个横向业务,都需要搞定纵向技术栈中的技术要点才能真正实现
因为在实际项目中做过四横相关的业务,所以四横比较好理解,但是四纵就不那么好理解了,所以接下来会通过具体学习来加深对四纵的了解。
分布式缘起
单点模式
优点:因为集中在一台机器,所以便于运维部署。
缺点:单台机器会有性能提升瓶颈的问题,并且存在单点失效的问题。
游击队模式
游击队模式,简单理解,游击队中的每个队员都完整的负责处理一个请求。这种模式又叫数据分布式,相当于拆分数据到不同的机器上处理,每台机器运行的应用是相同的,其实就是一个集群。
优点:能够较好的处理大量的请求,同时避免了单点失效的问题
缺点:
-
无法应对单个请求比较复杂时,处理性能的问题
-
运维部署不再容易
-
需要考虑负载均衡问题
-
需要数据同步问题:读写分离;单点登录等等
集团军模式
集团军模式的拆分方式和游击队不同,集团军每个人都只负责整个业务的一个小部分,一个复杂的业务被拆分成多个子业务,每个子业务被放到不同的服务器进行并行处理,最后合并处理结果。
优点:可以解决游击队模式中针对单个复杂请求性能较低的情况
缺点:
-
业务拆分难度较大
-
架构设计更加复杂
-
运维部署难度也很高
总结来看,分布式 是一种把 相同 或者 相关 的程序放到多台服务器来对外提供服务的一种服务形态,分布式的驱动力量主要是 我们对于 性能 可用性以及扩展性的追求。
分布式系统的指标
性能
性能主要包括下面三个具体指标
- 吞吐量:一段时间内处理的任务数。
- QPS:衡量一个系统对读操作的支持程度
- TPS:衡量一个系统对写操作的支持程度
- BPS:衡量一个系统每秒处理的 数据量
- 响应时间:一个系统响应一个请求的时间
- 完成时间:一个系统完成一个任务的时间
资源占用
资源占用包括一个服务提供正常能力所占用的硬件资源。包括cpu,内存,硬盘等等。
- 空载资源占用
- 满载资源占用
可用性
系统从异常情况中恢复服务的时间越短,可用性越高。可用性的公式一般为:系统可用时间/总时间占比。
3个9或者5个9指的就是系统在99.9%和99.999%的时间占比下都是可用的。
可伸缩性
可伸缩性指的是通过简单的增加机器数量使系统处理能力线性提高的一种能力。
这里关注两个点:
- 简单的增加机器
- 线性提高处理能力
可伸缩性可以通过加速比来衡量,加速比一般用加速后的指标/加速前的指标来计算。