Spring Cloud Netflix套件简介
Spring Cloud Netflix
套件中有 Eureka
、Ribbon
、Hystrix
、Zuul
、Feign
五个非常知名的开源项目,分别用于服务注册与服务发现、负载均衡、服务容错、服务网关、服务通信,如图 3-4 所示。Spring Cloud
在推出时就集成了 Netflix
套件,Eureka
、Ribbon
、Hystrix
、Zuul
、Feign
这五个开源项目也是 Java
开发人员比较熟悉的技术名词。从 2016 年开始落地的微服务架构项目,大多数的开发团队选择和使用了这套方案。

可以说,在 Spring Cloud
开疆拓土之初,Netflix
提供了全力的支持,Eureka
、Ribbon
、Hystrix
、Zuul
、Feign
更是 Spring Cloud
“打天下” 的五大得力 “战将”。
但是,Netflix
套件不更新了。
2018 年,Netflix
套件中的开源项目陆续进入了维护模式。终于,在 2018 年 12 月 12 日,Spring
官方网站上发布了一篇文章 Spring Cloud Greenwich.RC1 available now
,在这篇文章中正式宣布了 Spring Cloud Netflix
进入维护模式。这还不算完,文章中还告知了开发人员 Netflix
套件的替代产品,如建议开发人员使用 Spring Cloud Gateway
代替原来的 Zuul
作为服务网关组件,使用 Spring Cloud LoadBalancer
代替原来的 Ribbon
作为负载均衡组件,然后就开始移除 Netflix
的工作。在 Spring Cloud
后续更新版本中都在不断地对 Netflix
套件做减法,这个工作持续了两年多的时间。2020 年 12 月 22 日,Spring Cloud 2020.0.0
版本发布,该版本中移除了 Netflix
套件中的相关依赖,详细内容可以查看 Spring-Cloud-2020.0-Release-Notes
。比如,在使用 Spring Cloud
最新版本的项目中,全局搜索 Netflix
关键字,已经搜不到任何 Java
类,看不到 Netflix
的任何痕迹了。Netflix
与 Spring Cloud
并肩战斗、开疆拓土的场景都将暂时封存在记忆里,Netflix
在未来是否还会重启这些项目是一个未知数。
2016 年至今已有 7 个年头,关于 Eureka
、Ribbon
、Hystrix
、Zuul
、Feign
的讨论和知识分享数不胜数,足以证明 Netflix
套件多么优秀和实用。虽然 Spring Cloud 2020.0.0
版本已经完成了移除 Netflix
组件的工作,但是依然还有很多项目是基于 Netflix
这套组件开发的微服务项目,Netflix
这套技术栈现在也依然能用。当然,推荐度和选择优先级就不是那么高了。能用和推荐使用,二者的差别还是很大的,所以开发人员也要谨慎选择。