前言
最近公司某个项目的架构越来越庞大,维护起来非常难受。领导提出要把这个项目重构,在工作中需要把原来的项目重构成微服务架构,因此学习微服务相关知识,在这里记录下来,权当笔记的同时也希望能对你有启发。今天就来聊聊什么是微服务?
单体应用
在聊微服务之前,我先给你们梳理下什么是单体应用。如果你不知道单体应用的痛,那也不会深刻理解微服务的价值。
上图为我司某项目架构,包含了四个模块。可以看出我司此项目的架构完完全全属于传统的 MVC 架构,所有的子系统都集成在一个很繁杂的 JVM 进程中。
优点
这种单体架构的优点在于方便管理,所有代码在同一项目中,但是当需求越来越多,项目规模越来越大,其坏处也很明显。
缺点
- 项目过于臃肿,部署效率低下
当大大小小的功能模块都集中在同一项目的时候,整个项目必然会变得臃肿,让开发者难以维护。单体应用的代码越来越多,依赖的资源越来越多时,应用编译打包、部署测试一次非常耗时。
- 系统高可用性差,资源无法隔离
整个单体系统的各个功能模块都依赖于同样的数据库、内存等资源,一旦某个功能模块对资源使用不当,整个系统都会被拖垮。
- 开发成本高
早期在团队开发人员只有两三个人的时候,