1、微服务发展史
单体架构->集群及垂直化->SOA服务->微服务架构
1、单体架构
单体架构:一个war包或者jar包包含一个应用的所有功能,如图所示为单体架构图。
2、集群及垂直化
产生原因:
- 用户量越来越大,服务端负载越来越高。
- 业务场景越来越多并且越来越复杂。
优化:
- 横向增加服务器,单台机器变为多台机器的集群。
- 按照业务垂直领域进行拆分,减少业务耦合度。
总体思想:
分而治之
3、SOA服务
SOA(Service Oriented Architecture:面向服务的体系结构。
4、微服务架构
微服务架构优点:
- 复杂度可控:体积小,复杂度低,开发、维护更加方便。
- 技术选型更加灵活。
- 可扩展性更强。
- 独立部署。
- 容错性:可通过重试、降级机制实现应用层面的容错。
微服务的挑战:
- 故障排查难:微服务与微服务多次交互,开发人员定位难。
- 服务监控:服务监控开销大。
- 分布式架构的复杂度:微服务与微服务调用会存在网络延迟和网络故障无法避免。
- 服务依赖:服务增多以后,使得系统整体更为复杂。
- 运维成本:众多微服务的情况下,运维成本随之增加。
微服务技术挑战:
- 分布式配置中心。
- 服务路由。
- 负载均衡。
- 熔断限流。
- 莲路监控。