摘要: 随着Eureka不再维护,Hystrix不再开发新功能,进入维护状态。以及最近中国开源出现一些大事,预测一下2019年未来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 |
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.
本文所提到的开源项目链接汇总如下所示:
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