Skip to content

Netflix OSS 全景概览

什么是 Netflix OSS?

Netflix OSS(Open Source Software)是 Netflix 公司开源的一套微服务基础设施组件。2014 年前后,Netflix 将自己内部大规模使用的微服务组件开源,Spring Cloud 将其封装为 spring-cloud-starter-netflix-* 系列,成为 Spring Cloud 生态的标准组件。

核心组件一览

组件解决什么问题核心思想
Eureka服务注册与发现AP 模型,优先保证可用性
Ribbon客户端负载均衡7 种策略,调用方自己选实例
Hystrix熔断降级断路器模式,防止级联故障
ZuulAPI 网关过滤器链,前置拦截

Netflix 微服务架构全景

                     ┌─────────────────────────┐
                     │          Zuul           │  ← 网关入口
                     │      (前置过滤器链)       │
                     └────────────┬────────────┘

                     ┌────────────┴────────────┐
                     │         Eureka          │  ← 注册中心
                     │   (服务注册 & 发现)       │
                     └────────────┬────────────┘

        ┌─────────────────────────┼─────────────────────────┐
        │                         │                         │
        ▼                         ▼                         ▼
┌──────────────┐         ┌──────────────┐         ┌──────────────┐
│  订单服务      │ ←────→ │  库存服务      │ ←────→ │  支付服务      │
│  Ribbon 负载  │  Feign  │  Ribbon 负载  │  Feign  │  Ribbon 负载  │
│  Hystrix 熔断 │         │  Hystrix 熔断 │         │  Hystrix 熔断 │
└──────────────┘         └──────────────┘         └──────────────┘

为什么 Netflix 组件被替代?

时间事件
2018Netflix 宣布 Hystrix 进入维护模式
2019Netflix 宣布 Ribbon 进入维护模式
2020Netflix 宣布 Zuul 1.x 进入维护模式
2021Spring Cloud 2020.0 移除 Netflix 组件默认依赖

核心原因:

  1. 阻塞式 IO:Ribbon、Zuul 1.x 基于 Servlet,阻塞式,性能瓶颈
  2. 响应式趋势:Spring 推出 WebFlux,Netflix 组件无法适配
  3. 功能局限:Eureka 只是注册中心,Hystrix 只有熔断,不如 Nacos/Sentinel 功能全
  4. Netflix 战略调整:内部不再大规模使用,转而拥抱 gRPC + Envoy

学习价值

虽然 Netflix 组件已停维,但它们的设计思想仍然是微服务架构的经典教材:

  • Eureka 的 AP 选型 → 理解 CAP 理论在工程中如何取舍
  • Hystrix 的断路器模式 → 所有熔断组件(Sentinel/Resilience4j)的共同原型
  • Ribbon 的 IRule 设计 → 解耦策略与执行,开闭原则典范
  • Zuul 的过滤器链 → Gateway 的 GlobalFilter 就是借鉴于此