请注意,本文编写于 1977 天前,最后修改于 1977 天前,其中某些信息可能已经过时。
单体架构
一个归档包(例如war包)包含所有功能的应用程序,我们通常称为单体应用。而架构单体应用的方法论,就是单体应用架构。
单体架构的优点
- 架构简单
- 开发、测试、部署方便
单体架构的缺点
- 复杂性高
- 部署慢、频率低
- 扩展能力受限
- 阻碍技术创新
微服务架构
微服务的定义
微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。
微服务的特性
- 每个微服务可独立运行在自己的进程里;
- 一系列独立运行的微服务共同构建起整个系统;
- 每个服务为独立的业务开发,一个微服务;
- 可使用不同的语言与数据存储技术(契合项目情况和团队实力);
- 微服务之间通过轻量的通信机制进行通信,例如通过
REST API进行调用; - 全自动的部署机制;

微服务的优点
- 单个服务更易于开发、维护
- 单个微服务启动较快
- 局部修改容易部署
- 技术栈不受限
- 按需伸缩
微服务的缺点
- 运维要求高
- 分布式固有的复杂性
- 重复劳动
微服务的适用场景
- 大型、复杂的项目
- 有快速迭代的需求
- 访问压力大
不适合微服务的场景
- 业务稳定
- 迭代周期长