单体应用和微服务的介绍
一.单体应用
1.什么的单体应用
项目所有的资源都在一个应用中,打包成一个war包,使用一个tomcat去运行,运行在一个进程中。
2.单体应用的问题
- 一个模块挂了,整个项目都受影响
- 单个tomcat更能处理的并发有限,可以做集群,但是不方便局部(某一个模块)扩展
- 维护/开发/升级比较麻烦
- 代码臃肿,编译,打包都比较慢
- 技术选型单一
- 数据库选型单一
二.微服务架构
1.什么是微服务架构
微服务就是把一个大的系统,拆分成多个小的服务,每个微服务只专注一个业务 ,每个服务有各自的进程, 微服务之间使用网络通信协议进行数据交互(通常是基于HTTP的RESTful API)。
2.微服务的特点
- 数据库选型多样化
- 技术选型多样化
- 每个微服务专注一个业务
- 每个维护有自己的进程
- 微服务之间通过网络协议进行通信
- 方便做局部拓展
- 开发/维护/升级更方便
3.微服务缺点
- 成本高
- 技术要求比较高
- 部署麻烦