@[TOC] 目录
Spring Cloud Alibaba 从零开始学习(一) ------ 基本概述
1. 微服务简介
在微服务架构出现之前,互联网应用架构的演变,经历了单体应用,垂直应用,SOA应用这些过程,直到目前微服务成为最了主流的架构模式。从某种形式上看微服务架构是对SOA架构的一种拓展。微服务架构对应用的拆分粒度更小,服务之前的依赖更小,不同的服务可以使用不同的语言开发,服务之通过轻量级通信实现数据通信,它的重点是业务的彻底组件化和服务化。
2. 基本概念
(1) 服务注册与发现
- 服务注册 :服务提供者将服务端的基本信息注册到配置中心
- 服务发现 :服务消费者根据配置中心的访问策略可以从配置中心获取实时的服务实例
- 配置中心 :也叫做注册中心,对所有注册的服务进行管控
(2) 负载均衡
根据策略将服务请求分发到不同的服务器,来提高服务处理性能和可靠性。
(3) 断路保护
断路保护也叫做熔断,在微服务架构中,如果下游服务因访问压⼒过⼤⽽响应变慢或失败,有可能会导致整个服务的雪崩,因此上游服务为了保护系统整体可⽤性,可以暂时切断对下游服务的调⽤,这种牺牲局部,保全整体的措施就叫做熔断。
(4) 链路追踪
微服务架构越发流⾏,⼀个项⽬往往拆分成很多个服务,那么⼀次请求就需要涉及到很多个服务。不同的微服务可能是由不同的团队开发、可能使⽤不同的编程语⾔实现、整个项⽬也有可能部署在了很多服务器上(甚⾄百台、千台)横跨多个不同的数据中⼼。所谓链路追踪,就是对⼀次请求涉及的很多个服务链路进⾏⽇志记录、性能监控等。
(5) 网关
微服务架构下,不同的微服务往往会有不同的访问地址,客户端可能需要调⽤多个服务的接⼝才能完成⼀个业务需求,如果让客户端直接与各个微服务通信可能出现:
- 客户端需要调⽤不同的url地址,增加了维护调⽤难度
- 在⼀定的场景下,也存在跨域请求的问题
- 每个微服务都需要进⾏单独的身份认证
那么,API⽹关就可以较好的统⼀处理上述问题,API请求调⽤统⼀接⼊API⽹关层,由⽹关转发请求。API⽹关更专注在安全、路由、流量等问题的处理上。
3. Spring Cloud 概述
Spring Cloud是⼀系列框架的有序集合(Spring Cloud是⼀个规范)开发服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等利⽤Spring Boot的开发便利性简化了微服务架构的开发(⾃动装配)。
(1) Spring Cloud 核心组件
Spring Cloud ⽣态圈中的组件,按照发展可以分为第⼀代 Spring Cloud组件和第⼆代 Spring Cloud组件,其中第一代组件主要以Netflix公司的产品为主,第二代以alibaba的为主。
SpringCloud | SpringCloud Alibaba | |
---|---|---|
注册中心 | Eureka | Nacos |
负载均衡 | Ribbon | Dubbo LB |
熔断器 | Hystrix | Sentinel |
网关 | Zuul | GateWay |
配置中心 | Config | Nacos |
服务调用 | Fegin | Dubbo RPC |
消息驱动 | Stream | - |
链路追踪 | Sleuth/Zipkin | - |
(2) SpringCloud 组件工作机制
Spring Cloud中的各组件协同⼯作,才能够⽀持⼀个完整的微服务架构。
- 注册中⼼负责服务的注册与发现,很好将各服务连接起来
- API⽹关负责转发所有外来的请求
- 断路器负责监控服务之间的调⽤情况,连续多次失败进⾏熔断保护。
- 配置中⼼提供了统⼀的配置信息管理服务,可以实时的通知各个服务获取最新的配置信息。