Spring Cloud Netflix套件简介

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

image 2025 04 14 16 24 47 101
Figure 1. 图3-4 Spring Cloud Netflix套件总结

可以说,在 Spring Cloud 开疆拓土之初,Netflix 提供了全力的支持,EurekaRibbonHystrixZuulFeign 更是 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 的任何痕迹了。NetflixSpring Cloud 并肩战斗、开疆拓土的场景都将暂时封存在记忆里,Netflix 在未来是否还会重启这些项目是一个未知数。

2016 年至今已有 7 个年头,关于 EurekaRibbonHystrixZuulFeign 的讨论和知识分享数不胜数,足以证明 Netflix 套件多么优秀和实用。虽然 Spring Cloud 2020.0.0 版本已经完成了移除 Netflix 组件的工作,但是依然还有很多项目是基于 Netflix 这套组件开发的微服务项目,Netflix 这套技术栈现在也依然能用。当然,推荐度和选择优先级就不是那么高了。能用和推荐使用,二者的差别还是很大的,所以开发人员也要谨慎选择。