前言

Spring Cloud 啊

那就得提一下微服务框架,所谓的微服务框架就是把负责的功能拆分成比较小、功能比较单一的服务独立处理,比如单点登录服务、支付服务、订单服务等,当然如果订单功能比较复杂还可以独立出更具体的服务。

Spring Cloud Config

配置中心

将系统中用到的一些配置信息存储到配置中心,这样就方便维护啦,不用每次修改配置都重启服务。用的比较多的配置中心还有 etcd、携程的 Apollo、Disconf 。

其实还有 Alibaba 的 Nacos, 但是我还没进一步的去了解

Spring Cloud Netflix

Netflix OSS 是一组开源的框架和组件库,是 Netflix 公司开发出来解决分布式系统的一些有趣的可扩展类库。Spring Cloud 把他们都放到 Spring Cloud Netflix 下,这是一个框架集合,它包括 Eureka 、Ribbon、Zuul、Hystrix 等。

Eureka

服务注册中心

这可以说是微服务架构的核心功能了,微服务部署之后,一定要有服务注册和发现的能力,而 Eureka 就是担任这个角色的。如果你用过 Dubbo 的话,那一定知道 Dubbo 中服务注册和发现的功能是用 Zookeeper 来实现的。

目前官方已停止升级,如果你的项目中还没有使用并且打算使用注册中心的话,可以直接使用 Spring Cloud Consul or Spring Cloud Alibaba Nacos

Ribbon

服务调用

提供客户端负载均衡功能,例如一个服务提供者部署了 3 个实例,那么使用 Ribbon 可以指定负载均衡算法去请求其中一个实例,Ribbon 如果配合 Eureka ,使用起来非常简单😊

Hystrix

服务熔断器

假设有 3 个服务提供实例,其中有一个实例由于某中原因挂掉了,那么当再有请求进来的时候,如果还是向这个实例上发送请求的话,那将会导致请求积压阻塞,这个时候,熔断器就要发挥它的作用,将这个有问题的实例下线,这样一来,再有新的请求进来,就不会再发到这个有问题的实例上了。

Zuul

服务网关。

主要实现了路由转发和过滤器功能,对于处理一些数据聚合、鉴权、监控、统计类的功能非常好用。

Gateway

它也是服务网关

可以认为它是 Zuul 的下一代,无论从易用性和性能方便都有所提高,如果你的系统中还没有使用 Zuul,并且准备上网关,可以直接选择 Gateway。

Spring Cloud Consul

Consul 让服务注册和服务发现(通过 DNS 和 HTTP 接口)更加简单,甚至对于外部服务(例如 SaaS)注册也一样。Spring Cloud Consul 可替代已有的 Spring Cloud Eureka。Eureka 2.x 版本也已经停止开发,并且 Spring Cloud 官方也建议用 Spring Cloud Consul 来替代,当然如果已经用了 Eureka 在项目中也没有关系,Eureka 已经足够稳定,正常使用没有任何问题。

Spring Cloud Consul 可替代已有的 Spring Cloud Config ,当做配置中心使用。

Spring Cloud Stream

Spring Cloud Stream 是消息中间件组件,它集成了 kafka 和 RabbitMQ 。如果你的系统中打算集成 kafka 或 RabbitMQ,可以考虑使用 Stream

Spring Cloud Bus

消息总线

用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。集成了 RabbitMQ 和 kafka 。刚刚上面说到的 Stream 好像也是这个功能。没错,我们可以认为 Bus 是 Stream 的进一步封装,使用更简单。而 Stream 的灵活性更高。

Spring Cloud OpenFeign

Feign 是一种声明式、模板化的HTTP客户端。它可以用注解的方式简化 HTTP 请求,可以快速简单的请求服务提供接口。如果你还在使用 restTemplate 或者其他方式,不妨考虑一下 Feign。

Spring Cloud Sleuth

服务日志收集和链路追踪模块,封装了 Dapper 和 log-based 追踪以及 Zipkin 和 HTrace 操作。与之功能相同的框架还有 skywalking、Pinpoint,另外国内还有美团开源的 CAT,只不过 CAT 属于代码侵入的,需要开发人员在系统中做代码埋点,不过也更加灵活,更加精细。

Spring Cloud Security

可用做授权服务、单点登录等。如果服务需要做权限控制,那除非你自己实现。不然用到最多的就是 Shiro 和 Spring Security 。Spring Boot 中用的比较多的就是 Security,众多授权机制中属于 OAuth2 最为流行。Spring Cloud Security 就是将 Security、OAuth2 做了集成,方便使用。

除了以上的这些常用功能外,Spring Cloud 还提供了一些其他的模块,具体的可以到 Spring Cloud 官网一看。官网上介绍的更加详细。

官网:https://spring.io…

img