遇到一个新的技术,或名词,我们都是应该去考虑三个问题,
A.这个技术是什么
B.解决什么问题的
C.如何去解决的
单体架构
工作的前两年都是做的单体架构,例如一个普通的社保系统。
单体架构.png
这种单体架构,将系统所有的模块用包划分,然后写在一个工程项目中,并且部署在一台服务器上,用户多了,就加机器,增加访问量,这种架构是最传统的一种架构。
如果现在一个公司的业务量不大的话,这种架构完全可以适用,但是如果业务发展越来越好,访问越来越多,那这种架构的弊端就会慢慢展现出来。当有业务调整,必须要将整个系统里面的相关业务代码重新开发,与之耦合的业务代码也都是要重新二次开发,这为系统的后续维护和二次开发带来了很大的难度,甚至原开发人员离职,后续开发人员都不敢乱动里面的代码。但是运维起来却很简单。
单体架构缺点:
业务越来越复杂,单体架构扩展性不足,业务扩展带来的代价越来越大;
用户越来越多,程序承受的并发越爱越高,单体应用的并发能力有限;
单体应用的业务在同一个程序中,增删改业务修改,也会影响其他代码,给测试增加了难度
容易由于单点故障导致整个系统无法访问的情况
单体架构优点:
部署简单 :由于是完整的结构体,可以直接部署在一份服务器上即可
技术单一 :项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发
用人成本低 :单个程序员可以完成业务接口道数据库的整个流程
分布式架构
基于单体架构,随着业务场景的持续增长化,单体架构越来越难以满足企业的需求了,行业中的大佬开始研究,最终慢慢演化成了如今的分布式架构,其实谈到分布式架构就一定要说微服务,微服务是分布式架构的基石。
还是原来的社保系统,如果改造成分布式架构:
分布式架构.png
分布式架构将原来单体架构里面的每个模块都单独做成一个系统,然后对外提供服务(微服务),然后各个系统之间使用网络通信,但是对外我们只暴露一个访问地址,从而站在用户的角度来说还是以为是一个系统,其实这一个系统里面包含了几十个系统。而且还可以根据不同的系统的微服务调用情况,适当的给访问量大的模块系统增加机器,扩容,提高并发的访问量。
分布式架构缺点:
运维成本高,部署系统多,对部署的顺序也有一定的要求
网络通信的不确定性
对开发技术人员的技术要求提高
系统的响应时间会变长
分布式架构优点:
系统扩展性强
系统并发性强
系统可用性强
系统的性能强
俗称三高:高可用,高并发,高性能
总结:
什么是分布式系统:基于微服务,将传统的单体架构系统拆分成多个微服务系统,多个微服务系统基于网络通信,协作组成一个外部开来整体唯一的系统。
为什么要使用:因为微服务系统能够满足日益增长的业务需求发展,对外提供高可用,高并发,高性能的服务系统。
分布式是如何做到的:使用各种复杂的技术,去拆分单体架构中的模块,并解决其中的拆分和网络带来的问题。
网友评论