在Spring Cloud生态体系内,最核心的五大部件成就了它如今的辉煌:

1、注册中心

在Spring Cloud中,注册中心有多个方案可选:Eureka、Zookeeper、Consul。

目前使用最多的是Eureka,如果熟悉阿里Dubbo框架的话,也可以采用Zookeeper作为注册中心,毕竟熟悉的东西用起来更得心应手。

 

2、配置中心

Spring Cloud Config承担了微服务架构中的配置中心角色,实现了配置的统一管理和调度

 

3、服务网关

Spring Cloud集成了Netflix的Zuul 1.x作为服务网关,微服务群体一般处于一个封闭的局域网内,Spring Cloud的服务网关负责对外开放唯一的调度入口。

在Greenwish及更高版本的Spring Cloud中,开始使用Spring Cloud Gateway作为服务网关,因为Zuul 1.x基于Servlet 2.5,是一个阻塞型架构,不支持长连接;虽然Zuul 2.x基于Netty框架,但是目前Spring Cloud并没有意向整合Zuul 2.x。

Spring Cloud Gateway基于Project React框架,属于非阻塞型NIO架构,支持长连接和WebSocket,预计不就将会逐渐成为官方推荐的网关组件。

 

4、服务容错

Spring Cloud集成了Netflix的Hystrix作为服务容错组件,解决了微服务间雪崩故障问题。

 

5、服务调用

Spring Cloud中的Ribbon为服务调用提供了最核心的技术服务:负载均衡;Ribbon通过在客户端实现负载均衡的方式,对各个微服务提供业务调用时的负载均衡功能。但是,由于Ribbon通常是搭配RestTemplate进行服务调用,使用起来没有那么便捷;因此便衍生出更强大的服务调用组件:Feign。

Feign对Ribbon进行了封装和强化,在开发微服务项目时,可以将调用其它微服务的模块像调用数据的Mapper模块一样,生成对应的Feign模块;例如:UserMapper实现对User表的操作,UserFeign实现对User微服务接口的操作;UserMapper一般存放在【cn.x-core.edusys.db.basic.mapper.UserMapper】包中,UserFeign则类似的存放在【cn.x-core.edusys.feign.UserFeign】包中。

更多推荐

01 前言:关于Spring Cloud的核心组件