系统架构演变过程
1)单体应用架构
单体架构,结构简单开发简单,适合中小型用。缺点是不适合扩展维护,代码高度耦合。
2)垂直应用架构
垂直应用系统,可以解决高并发问题,可以针对不同模块进行优化,方便水平扩展容错。
缺点是:
1)系统之间相互独立
2)有重复的开发工作
3)分布式架构
缺点,随着服务越来越多,服务的评估治理调度困难。
4)SOA架构
SOA全程是Service-Oriented-Architecture,即面向服务架构。它站在功能的角度将业务逻辑抽象成可复用科组装的服务,通过服务的编排实现业务的快速再生。SOA的特点是分布式,可重用,,扩展灵活,松耦合。Dubbo ESB即SOA架构。
SOA加购的缺点是,抽取服务的粒度较大,服务提供方与调用方接口耦合度较高。
5)微服务架构
微服务架构的优点是,通过对服务的原子化拆分以及微服务的独立打包部署升级,小团队的交付周期将缩短,运维成本下降。微服务遵循单一原则,微服务之间采用Restful等轻量级传输协议。
微服务架构的缺点是,微服务过多,服务治理成本高,不利于系统维护;分布式系统开发的技术成本高(容错,分布式事务等)。
6)SOA与微服务的关系
微服务是在SOA上做的升华。微服务架构强调一个重点是“业务需要彻底的组件化和服务化”。
Spring Cloud概述
Spring Cloud是一种规范,是一系列框架的有序集合,是一种常见的微服务框架。同类产品有ServiceComb,ZeroC ICE等。
Spring Cloud基于SpringBoot的开发便利性,简化了分布式系统基础设施的开发,如服务发现注册,配置中心,消息总线,负载均衡,断路器,数据监控等,都可以以SpringBoot的开发风格做到一键启动和部署。
SpringCloud架构
SpringCloud的核心组件
Spring Cloud Netflix组件
Eureka,服务注册中心;
Ribbon,客户端负载均衡;
Feign,声明式服务调用;
Hystrix,客户端容错保护
Spring Cloud Alibaba组件
Nacos,服务注册中心;
Sentinel,客户端容错保护;
SpringCloud原生及其他组件
Consul,服务注册中心;
Config,分布式配置中心;
Gateway,API服务网关;
Sleuth/Zipkin,分布式链路追踪。