目录
一.单体架构
1.定义
2.优点
3.缺点
4.结论
二.微服务
1.定义
三.SpringCloud
1.定义
2.版本要求
一.单体架构
1.定义
将业务的所有功能集中在一个项目中开发,打成一个包部署。
2.优点
- 架构简单:基本没什么架构,打开项目就写
- 部署成本低:打成jar包,放到linux中,一行执行命令就能运行
3.缺点
- 团队协作成本高:复杂项目如果采用单体架构,几十个开发人员都在一个Java工程中写代码,提交git时,很容易造成冲突,每天不是在解决冲突就是在制造冲突。
- 系统发布效率低:每当项目添加一点点新功能后,就需要重新打jar包、重新部署,这样耗时太长,效率低
- 系统可用性差:单体架构的项目,打成1个jar包,只有一台tomcat服务器,扛不住大量用户的访问,导致后端接口响应速度慢,甚至导致后端崩溃
4.结论
单体架构,不适合大型、复杂、用户量大的项目,而适合功能简单、开发人员少、用户量小的项目。
二.微服务
1.定义
微服务架构,是服务化思想(把单体架构中的功能,拆分成一个个独立的项目)指导下的一套最佳架构方案。
举例:
- 拆分前:所有功能,放到一个项目中,打成一个jar包
- 拆分后:每一个功能,打成一个jar包,都有独立的tomcat服务器和数据库。这样一个功能响应慢/崩溃,就不会影响到其他功能,做到了服务自治
三.SpringCloud
1.定义
SpringCloud是目前国内使用最广泛的微服务框架。
SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
2.版本要求
由于SpringCloud要基于SpringBoot做自动装配,因此二者的版本必须要匹配,如下: