单体应用与微服务
- 单体架构
- 单体架构优点
- 单体架构缺点
- 单体架构场景
- 微服务
- 微服务特性
- 微服务优点
- 微服务缺点
- 微服务应用场景
- 不适用的场景
- 微服务全景架构图
单体架构
单体架构就是一个归档包(war|jar)包含所有功能的应用程序,通常称为单体应用;而架构单体应用的方法论,就是单体应用架构。
单体架构优点
架构简单;开发、测试、部署方便;
单体架构缺点:
适用场景:
单体架构缺点
复杂性高;部署慢、频率低;扩展能力受限;阻碍技术升级;
单体架构场景
适合小型的应用服务。
微服务
微服务架构风格是一种将一个单一应用程序开发为“一组小型服务”的方法,每个服务运行在“自己的进程”中,服务间通信采用"轻量级通信机制"。
这些服务“围绕业务能力构建”并且可通过“全自动部署机制”独立部署。这些服务公用一个“最小型的集中式的管理”,服务可用“不同的语言”开发,使用“不同的数据存储技术”。
微服务特性
- 每个服务可独立运行在自己的进程里;
- 一系列独立运行的微服务共同构建起整个系统;
- 每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如:订单管理、 用户管理等;
- 可使用不同的语言与数据存储技术(契合项目情况和团队实力)
- 微服务之间通过轻量级的通信机制进行通信,例如通过 REST API进行调用;
- 全自动的部署机制;
微服务优点
单个微服务更容易开发、维护;
单个微服务启动启动较快;
局部修改容易部署;
技术栈不受限;
按需伸缩;
微服务缺点
运维要求高;
分布式固有的复杂性;
重复劳动(A服务有个DateUtils B也要有DateUtils );
微服务应用场景
大型、复杂的项目;
有快速迭代的需求;
访问压力大;
不适用的场景
业务稳定,迭代周期长。
微服务全景架构图