一、系统架构演变
1、集中式架构(巨石)
存在的问题
- 代码耦合,开发维护困难
- 无法针对不同模块进行针对性优化
- 无法水平扩展
- 单点容错率低,并发能力差
2、垂直拆分
优点:
- 系统拆分实现了流量分担,解决了并发问题
- 可以针对不同模块进行优化
- 方便水平扩展,负载均衡,容错率提高
缺点:系统间相互独立,会有很多重复开发工作,影响开发效率
3、分布式服务
优点: 将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率
缺点:系统间耦合度变高,调用关系错综复杂,难以维护
4、服务治理架构(SOA)面向服务的架构
- 服务间会有依赖关系,一旦某个环节出错会影响较大
- 服务关系复杂,运维、测试部署困难,不符合DevOps思想
5、微服务
概念:微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
微服务的特点:
- 单一职责
- 服务虽小,但“五脏俱全”
- 每个服务都要对外暴露Rest风格服务接口API
- 每个服务都是一个独立的开发团队
- 技术独立
- 数据库独立
- 部署独立