单体应用与微服务

  • 单体架构
  • 单体架构优点
  • 单体架构缺点
  • 单体架构场景
  • 微服务
  • 微服务特性
  • 微服务优点
  • 微服务缺点
  • 微服务应用场景
  • 不适用的场景
  • 微服务全景架构图


单体架构

单体架构就是一个归档包(war|jar)包含所有功能的应用程序,通常称为单体应用;而架构单体应用的方法论,就是单体应用架构。

单体架构优点

架构简单;开发、测试、部署方便;
单体架构缺点:
适用场景:

单体架构缺点

复杂性高;部署慢、频率低;扩展能力受限;阻碍技术升级;

单体架构场景

适合小型的应用服务。

微服务

微服务架构风格是一种将一个单一应用程序开发为“一组小型服务”的方法,每个服务运行在“自己的进程”中,服务间通信采用"轻量级通信机制"。
这些服务“围绕业务能力构建”并且可通过“全自动部署机制”独立部署。这些服务公用一个“最小型的集中式的管理”,服务可用“不同的语言”开发,使用“不同的数据存储技术”。

微服务特性

  1. 每个服务可独立运行在自己的进程里;
  2. 一系列独立运行的微服务共同构建起整个系统;
  3. 每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如:订单管理、 用户管理等;
  4. 可使用不同的语言与数据存储技术(契合项目情况和团队实力)
  5. 微服务之间通过轻量级的通信机制进行通信,例如通过 REST API进行调用;
  6. 全自动的部署机制;

微服务优点

单个微服务更容易开发、维护;
单个微服务启动启动较快;
局部修改容易部署;
技术栈不受限;
按需伸缩;

微服务缺点

运维要求高;
分布式固有的复杂性;
重复劳动(A服务有个DateUtils B也要有DateUtils );

微服务应用场景

大型、复杂的项目;
有快速迭代的需求;
访问压力大;

不适用的场景

业务稳定,迭代周期长。

微服务全景架构图

单体架构如何部署设备 单体应用架构的特征_通信机制