Spring Cloud 教程

Spring Cloud 笔记

Spring Cloud 概述及发展历史简介


Spring Cloud 是一个基于 Spring Boot 实现的微服务开发工具,它不是框架,它是规则,它是思想,它提供了分布式系统中的分布式/版本化的配置、服务注册及发现、智能路由、服务之间调用、负载均衡、断路器、全局锁、主机推举与集群状态、分布式消息等开发方式。

发展历史

privotal 公司在 2014 年 10 月 7 日发布了第一个 Spring Cloud 的版本:1.0.0.M1,随后进行几年的迭代后,在 2016 年 1 月发布了第一个 Angel.SR5 正式版本。

Spring Cloud 一度泛指 Spring Cloud Netflix,但是这种观点是错误的,只是 Spring Cloud 早期的组件采用了 Netflix 的组件,如服务注册及发现采用 Netflix Eureka,负载均衡用 Netflix Ribbon,断路器使用 Netflix Hystrix 等等。

随着 Netflix 对一些组件不再开发或不再维护,Spring Cloud 也宣布这些模块对应的在 spring-cloud-netflix 项目里的模块也不再维护,并且在 RoadMap 中删除这些维护模块。Netflix 在 Spring Cloud 历史中会逐渐消失。

各组件实现

我们知道 Spring Cloud 是一个规范、规则,是思想,每个组件都有不同的实现,除了早期的 Netflix 相关实现外,还有 Alibaba 等实现,具体如下表格:

Spring Cloud 各个组件实现方案
  Spring Cloud Netflix Spring Cloud 官方 Spring Cloud Alibaba Spring Cloud Consul Spring Cloud Kubernetes Spring Cloud Zookeeper
分布式配置 Archaius Spring Cloud Config
(Spring Cloud Vault)
Nacos Consul ConfigMap Zookeeper
服务注册/发现 Eureka 1.0
Eureka 2.0
- Nacos Consul Api Server Zookeeper
服务熔断 Hystrix Spring Cloud Circuit Breaker
(resilience4j)
Sentinel - - -
服务调用 Feign OpenFeign
RestTemplate
Dubbo RPC - - -
服务路由/网关 Zuul Spring Cloud Gateway Dubbo Proxy - - -
分布式消息 - Spring Cloud Stream
SCS RabbitMQ/Kafka
SCS RabbitMQ SCS Consul - -
消息总线 - Spring Cloud Bus SCB SCS Consul - -
负载均衡 Ribbon Spring Cloud LoadBalancer Dubbo LB - - -
分布式事务 - - Seata - - -
安全认证 - Spring Cloud Security - - - -
分布式服务追踪 - Spring Cloud Sleuth - - - -

如上表格中,红色的表示已经不再继续开发