2019-09-16 · 许进 · · 字数:1472·阅读时间 3 分钟 阅读量

摘要: 随着Eureka不再维护,Hystrix不再开发新功能,进入维护状态。以及最近中国开源出现一些大事,预测一下2019年未来Spring Cloud生态圈中的第二代组件的组合,仅代表个人看法

1. Spring Cloud第一代

Spring Cloud自从推出之后,给大家的感觉就是Spring Cloud做它最擅长的事,也就是高度抽象和封装,强强联手整合最优东西为我所用,比如Netflix开源的Eureka,Hystrix,Ribbon等。而且提供多种技术选型,态度中立而选最优。8天前也就是2018年11月19号左右,Netflix的开源项目Hystrix宣布状态,不再开发新功能,处于维护状态。引发朋友圈的一些思考。

虽然Eureka,Hystrix等不再继续开发或维护,但是目前来说不影响使用,不管怎么说感谢开源,向Netflix公司的开源致敬。

随着Spring Cloud生态圈的发展与成长,Spring Cloud陆续推出了自己的一些组件,挑选主要组件说明如下表所示:

组件 来源 说明
Spring-cloud-openfeign 基于Feign的升级 服务之间调用的必备组件
spring-cloud-zuul 来源于Netflix Zuul 目前还在继续维护,但是已经有自己的Spring Cloud Gateway,不久将来逐渐淘汰
spring-cloud-eureka 集成于Netflix Eureka 目前还在跟随Spring Cloud版本升级维护,最终也会被替代
spring-cloud-config 自研 功能不足,国内使用其它配置中心替代,比如携程的Apollo
全链路监控(sleuth+zikpin或pinpont) sleuth自研,其它第三方 国内目前使用最多的是skywaling等上生产
spring-cloud-ribbon 来源于Netflix集成 ribbon目前还在跟随Spring Cloud版本维护中,目前孵化未来替代品spring-cloud-lb
Spring-cloud-hystrix 来源于Netflix集成 目前还在跟随Spring Cloud版本维护中目前已经孵化spring-cloud-r4j

2. Spring Cloud 第二代

Spring Cloud第一代和第二代的组件组合汇总,如下表所示。

Spring Cloud第一代 Spring Cloud第二代
网关 Spring Cloud Zuul Spring Cloud Gateway
注册中心 eureka(不再更新),Consul,ZK 阿里Nacos,拍拍贷radar等可选
配置中心 spring cloud config 阿里Nacos,携程Apollo,随行付Config Keeper
客户端软负载均衡 Ribbon spring-cloud-loadbalancer
熔断器 Hystrix spring-cloud-r4j(Resilience4J),阿里Sentinel

由于Zuul性能一般,zuul 2.x(一直跳票,虽最终开源)但是Spring Cloud官方已经推出Spring Cloud gateway,Spring Cloud中国社区很久之前已经证实,Spring Cloud将不会集成zuul 2.x,也就是说在不就未来Zuul将从Spring Cloud生态圈中退出。


ribbon由于不支持webFlux的负载均衡,Spring Cloud官方很早就在孵化器项目中孵化spring-cloud-loadbalancer,目前已经将代码合并到spring-cloud-common中,预计在Spring Cloud G版可以使用,预计2018年12月底realese。


至于Hystrix,Netflix在2018年11月19号左右,Netflix的开源项目Hystrix宣布状态,不再开发新功能,处于维护状态,其实在之前Spring Cloud官方就在孵化spring-cloud-r4j.

3.开源项目的链接

本文所提到的开源项目链接汇总如下所示:

https://github.com/alibaba/Sentinel

https://github.com/spring-cloud-incubator/spring-cloud-r4j

阿里Nacos-https://github.com/alibaba/nacos

随行付Config-keeper-https://github.com/sxfad/config-keeper

spring-cloud-loadbalancer

https://github.com/ctripcorp/apollo

https://github.com/apache/incubator-skywalking