【Spring Cloud Alibaba】001-单体架构与微服务
文章目录
- 【Spring Cloud Alibaba】001-单体架构与微服务
- 一、单体架构
- 1、单体应用与单体架构
- 2、单体应用架构图
- 3、单体架构优缺点
- 优点
- 缺点
- 二、微服务
- 1、微服务的“定义”
- 2、微服务的特性
- 3、微服务架构图
- 4、微服务的优缺点
- 优点
- 缺点
- 5、微服务的使用场景、
- 适合使用微服务的场景
- 不适合使用微服务的场景
一、单体架构
1、单体应用与单体架构
一个归档包(例如 war 包、jar 包)包含所有功能的应用程序,我们通常称为单体应用。
架构单体应用的方法论就是单体应用架构。
2、单体应用架构图
3、单体架构优缺点
优点
- 架构简单;
- 开发、测试、部署方便;
缺点
- 复杂性高(功能越来越复杂);
- 部署慢、部署频率低(应用很大,每次都需要全量部署);
- 扩展能力受限制(不同模块对硬件需求不同,单体应用服务器只能往全方位扩展);
- 阻碍技术创新(新技术无法应用);
二、微服务
1、微服务的“定义”
微服务架构风格是一种将单个应用程序作为一组小型服务开发的方法,每种服务都在自己的进程中运行,服务间通信采用轻量级通信机制(通常是HTTP资源API)。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。
2、微服务的特性
- 每个微服务运行在自己的进程里(有独立的Tomcat);
- 一组独立运行的微服务共同构建起整个系统;
- 每个微服务为独立的业务开发,一个微服务只关注某个特定的功能;
- 可以使用不同的编程语言和数据存储技术;
- 微服务之间通过轻量的通信机制通信(例如通过 REST API 进行调用);
- 全自动的部署机制。
轻量的通信机制:
1、通信协议应该是轻量的;
2、能够跨平台。
3、微服务架构图
4、微服务的优缺点
优点
- 单个服务更易于开发和维护;
- 单个微服务启动快;
- 局部修改容易部署;
- 技术栈不受限;
缺点
- 运维要求高;
- 分布式应用固有的复杂性;
- 重复劳动(比如不同编程语言功能相同的工具类等);
5、微服务的使用场景、
适合使用微服务的场景
- 大型复杂的项目;
- 应用需要快速迭代;
- 访问压力大;
不适合使用微服务的场景
- 业务稳定;
- 迭代周期长。