这两年最热门的微服务化话题,Spring Cloud Netflix真可谓璀璨夺目。熟悉spring cloud的同学都知道下面张图,netflix公司的贡献非常大。不过最近2018-12-12日,Netflix宣布Spring Cloud Netflix系列技术栈进入维护模式(不再添加新特性),距离上次宣布Eureka 2.0闭源(Spring Cloud 还是在1.x 上面开发的,最新版本依赖1.9.2)不到半年的光景。

Spring Cloud Netflix Projects Entering Maintenance Mode官方新闻:

Spring Cloud Netflix项目进入维护模式

最近,Netflix 宣布 Hystrix正在进入维护模式。自2016年以来,Ribbon已处于类似状态。虽然Hystrix和Ribbon现已处于维护模式,但它们仍然在Netflix大规模部署。

Hystrix Dashboard和Turbine已被Atlas取代。这些项目的最后一次提交别是2年和4年前。Zuul 1和Archaius 1都被后来不兼容的版本所取代。

以下Spring Cloud Netflix模块和相应的Starter将进入维护模式:

  1. spring-cloud-netflix-archaius
  2. spring-cloud-netflix-hystrix-contract
  3. spring-cloud-netflix-hystrix-dashboard
  4. spring-cloud-netflix-hystrix-stream
  5. spring-cloud-netflix-hystrix
  6. spring-cloud-netflix-ribbon
  7. spring-cloud-netflix-turbine-stream
  8. spring-cloud-netflix-turbine
  9. spring-cloud-netflix-zuul

这不包括Eureka或并发限制模块。

什么是维护模式?

将模块置于维护模式,意味着Spring Cloud团队将不会再向模块添加新功能。我们将修复block级别的bug以及安全问题,我们也会考虑并审查社区的小型pull request。

我们打算继续支持这些模块,直到 Greenwich release 被普遍采用至少一年。

替代品

我们建议对这些模块提供的功能进行以下替换

CURRENTREPLACEMENT
HystrixResilience4j
Hystrix Dashboard / TurbineMicrometer + Monitoring System
RibbonSpring Cloud Loadbalancer
Zuul 1Spring Cloud Gateway
Archaius 1Spring Boot external config + Spring Cloud Config

寻找关于Spring Cloud Loadbalancer的未来博客文章,并与新的Netflix项目Concurrency Limits集成。

这里补充说明一下

并发限制模块Netflix Concurrency Limits模块,它是Netflix开源的限流器项目,而Spring Cloud在Greenwich版本中引入spring-cloud-netflix-concurrency-limits。
Archaius 1

有些人对它可能比较陌生,也是Netflix公司开源项目,基于java的配置管理类库(apache common configuration类库的扩展),主要用于多配置存储的动态获取。它主要的特性:

  • 动态类型化属性
  • 高效和线程安全的配置操作
  • 配置改变时的回调机制
  • 轮询框架
  • JMX,通过Jconsole检查和调用操作属性
  • 组合配置

使用方法及其简单,Getting Started

Resilience4j目前还中孵化中,需持续关注spring-cloud-circuitbreaker。Spring可能是要抽象一个断路器的统一规范,让不同的断路器(Hystrix、Resilience4j、Sentinel)选择使用
Micrometer

Spring Boot 2中的Spring Boot Actuator底层用的就是Micrometer,它是Pivotal公司(也就是Spring所在的公司)开源的监控门面,类似于监控世界的Slf4j。Resilience4j自带整合了Micrometer!

目前还无法判断是否比Hystrix Dashboard /Turbine的更强大,更好用。

spring-cloud-loadbalancer目前还中孵化中,需持续关注spring-cloud-loadbalancer,使用上和Ribbon区别不大
Spring Cloud Gateway

众所周知的原因(Zuul持续跳票1年多,1.x是一个基于阻塞io的API Gateway以及Servlet),直到2018-5 Zuul 2.x(基于Netty,也是非阻塞的,支持长连接)才发布,但Spring Cloud暂时还没有整合计划。

Spring Cloud Gateway比zuul 1.x系列的性能和功能整体要好。

Spring Boot external config +

Spring Cloud Config

Netflix开源的组件(Archaius 1/Ribbon/Hystrix)都没有使用Spring Boot的规范(spring-boot-configuration-processor),根本没有metadata.json文件,于是这部分配置IDE无法给你提示

目前业界对Spring Cloud使用最广的就是Spring Cloud Netflix了。这意味着继续使用它再也没有新功能福利了,让人如何是好啊,不过我相信未来Spring Cloud的生态(替换品更多)会越来越好。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐