项目架构-----分布式集群的演变

架构演变

单体架构

All In One : 就是说我们的前端页面,后台服务,和数据库部署都在一台节点上面

项目架构-----分布式集群的演变_第1张图片
我们的项目开发完成后需要进行部署,将Tomcat和MySQL 安装到一台节点上,所有访问请求都来操作这一台电脑,每台服务器的同时访问量(并发量)是有上限的,随着现在互联网用户越来越多,单体架构不能满足大量的并发,
甚至会导致服务器宕机,重启。服务器停止运行,

单体架构的优势

  1. 开发简单,只需要创建一个项目进行编码即可
  2. 部署简单,直接将项目打包发布到一台服务器上,安装所需要的工具:(Tomcat,MySQL)
  3. 开发成本低,对开发人员成本也低

单体架构的弊端

  1. 因为所有的模块都在一个项目中,他们之间的耦合性是很高的,不方便后期的维护
  2. 所有的功能模块都发布到一个服务器上,如果其中的一个模块出现了问题,那就需要将所有的服务下线,
  3. 因为所有的功能模块都在一起,每台电脑都有瓶颈,并发量不能很高,

总而言之 单体架构越来越少,但是他还是被优先考虑,因为简单方便成本低,在一些管理系统中还是会用到单体架构

集群架构

会用到Nginx这门技术
项目架构-----分布式集群的演变_第2张图片

多台电脑做相同的事情

就相当于一个饭店里面有很多的服务员,但是他们做的都是相同的事情,因为人多,忙不过来,所以就招聘更多的服务员,

优势:提高并发量,根据集群的规模成倍提升

弊端:
1)没有解决单体架构的模块见得耦合性
2)某个模块需要维护升级的时候还是要停止服务
3)后台服务较多,需要添加负载均衡器 路由请求到指定的服务器上进行处理,一旦负载均衡器宕机,整个集群不可用,所以我们的负载均衡器需要高可用 —>发布2个,一个工作,另一个当做备用

分布式架构

项目架构-----分布式集群的演变_第3张图片

分布式架构就是各司其职
每个服务器做自己的事情

将一个完整的项目 拆分为多个小项目,单独部署,模块之间对外提供的接口可以互相调用,不同的操作 访问不同的服务即可,服务也可以发布成集群;

根据情况而定,需要面向大众的模块发布成集群。

就好比饭店中有收银员,厨师,服务员,他们有着自己的事情,
每个饭店中不会只有一个服务员,一个厨师。 所以他们也是一个群体,相当于集群。

分布式架构的优势:
1)把模块拆分,使用接口(这里的接口也就是我们常说的controller)通信,降低模块之间的耦合度
2)把项目拆分为若干个子项目,不同的团队负责不同的子项目
3)增加功能时只需要在增加一个子项目。调用其他系统的接口就可以
4)可以灵活的进行分布式部署(部署到不同的服务器,不同的机房)
5)解决高并发的问题

弊端:
1)系统架构变得复杂,开发难度提升
2)架构复杂,学习成本(也就是钱和精力)较高

总结

基于目前互联网的发展,项目系统中会出现越来越多的新功能,会有越来越多的用户,对我们的系统的高并发量,高可用和高效(响应速度) 有着高标准的要求,所以系统架构越来越负载,对我们开发人员来说也是一种挑战和进步,这种分布式架构就是我们开发人员想要越来越强必须要掌握的一个技能!

你可能感兴趣的:(项目架构-----分布式集群的演变)