Skip to content

Roadmap

Eric Zhao edited this page Nov 8, 2022 · 60 revisions

Overview

Roadmap 时间点:

版本 Milestone 主要特性
✅0.2.0 2018.9 异步调用支持、热点参数限流、黑白名单功能
✅1.4.0 2018.12 集群限流(基础版)
✅1.5.0 2019.3 Reactive 支持(RxJava / Reactor)
✅1.6.0 2019.4 API Gateway 流控
✅C++ V1 2019.6 Sentinel C++ 基础功能(统计、流控、监控)
✅1.7.0 2019.11 Service Mesh 初步支持
✅Go 0.1.0 2020.2 首个 Go 版本
✅Go 0.3.0 2020.5 Go 版本支持熔断降级特性
✅Go 0.4.0 2020.6 Go 版本支持热点流控
✅1.8.0 2020.8 更强大灵活的熔断降级能力
✅Node.js 0.1.0 2020.9 首个 Node.js 版本
✅Go 1.0 GA 2020.11 所有能力 ready,云原生生态
✅Rust 版本 2021.10 Rust 多语言原生版本
2.0.0 2022.12 流量治理标准组件,领域涵盖流量路由/调度、流量染色、流控降级
Go 2.0 GA 2023.6 微服务流量治理与自愈决策中心

详细 Roadmap:

功能点 优先级 重要性 Milestone 版本
注解支持 0.1.1
⚡️异步调用支持 0.2.0
⚡️热点参数限流 0.2.0
来源访问控制(黑白名单) 0.2.0
⚡️集群限流(基础版) 1.4.0
与更多主流框架适配 流动进行
与更多的数据源适配 流动进行
⚡️Reactive 支持 1.5.0
⚡️API Gateway 流量控制 1.6.0
⚡️Envoy 集群流量控制支持 1.7.0
指标/监控 API 标准化 长期
⚡️完善的 Service Mesh 支持 2.0.0(长期)
⚡️多语言支持(C++/Go 原生版本) 长期
⚡️智能化、自适应限流 2.0.0(长期)

开源生态:

sentinel-opensource-cloud-native-landscape-202006

流量治理组件

Sentinel 2.0 品牌升级将为流量治理,领域涵盖流量路由/调度、流量染色、流控降级等;同时社区正在将流量治理相关标准抽出到 OpenSergo 标准中,Sentinel 作为流量治理标准实现。

异步调用支持

  • Milestone: 0.2.0
  • Motivation:未来各种 RPC 框架、Web 框架都朝着异步化的目标发展(Dubbo 3.0, gRPC, Spring WebFlux, Vert.x, 异步 Servlet, Netty 服务等),整个 Java 的发展方向也在朝着异步、响应式演进(无论是 CompletableFuture, Reactive Streams 还是后面的 Project Loom 协程),因此支持异步调用非常重要。
  • 目标:支持异步调用链路的指标统计

集群流控与 Service Mesh

  • Milestone: 1.4.0
  • Motivation:引入集群限流的功能,作为单独的服务,与单机限流相组合形成两道屏障。同时,集群限流可以为 API Gateway 和 Service Mesh 提供集群流量控制的能力。
  • Tasks:
    • ✅Sentinel 集群限流客户端、服务端接口抽象设计,通信协议设计
    • ✅Sentinel 集群限流默认实现
    • ✅Envoy 集群流量控制支持(Envoy global rate limiting service)
    • Istio 原生支持
    • 集群限流客户端多语言支持(Go/C++ 等)

Reactive 生态

  • Milestone: 1.5.0
  • Motivation: 响应式编程是 Java 社区未来的发展趋势。越来越多的人开始用 RxJava 和 Reactor,Java 9 也将 Reactive Streams 的接口引入了 JDK,Spring 5.0 也引入了 Spring WebFlux / Project Reactor。可以说后续 reactive 是发展趋势。
  • 目标:
    • 支持 Reactive 适配,包括 Reactor、RxJava 2.x 等,并适配各种 reactive 库和框架。
    • 结合 back-pressure 等特性实现自适应限流(长期目标)。

云原生高可用决策中心

  • Milestone: 2.0
  • Motivation:Cluster Policy Brain 设计可以针对任意流量的场景做一些控制的策略,这里面包括但不限于:集群流控、安全策略、流量清洗、服务权重调整。

自适应/智能化/声明式策略

  • Milestone: 2.0(长期进行)
  • Motivation:当前用户需要根据系统的情况自己评估出一些数据来设定规则。如果能够比较好地利用实时指标,结合历史的监控数据,来自适应地进行限流降级,对用户来说是非常有吸引力的。
  • 相关 issue:

Eventing

  • Milestone: 2.0
  • Motivation:决策事件闭环

Sentinel 多语言

  • Milestone: 流动进行
  • 复杂度:高
  • 目标:
    • 集群限流多语言客户端:初期通过 gRPC service 等形式对接 Envoy、Istio 等抽象的接口;后期实现各个语言的原生 client(C++, Go, Node.js, Rust, PHP 等,欢迎贡献)
    • 核心库多语言版本(欢迎基于 C++/Go/Rust 版本实现其它语言版本)

更多适配(生态)

  • Milestone: 长期进行
  • 复杂度:低
  • Motivation:与更多的主流框架适配,与更多的动态配置/存储适配,可以吸引更多的用户。
  • 目标:
    • 框架适配:如 Vert.x、RxJava 2.x、Quarkus 整合等
    • DataSource 适配:如 etcd, MongoDB, MySQL, Eureka 等
  • Note:欢迎大家来贡献

监控标准化

  • Motivation:目前 Sentinel 的监控统计指标提供方式还可以更丰富(比如 percentile, gauge, histogram 等 metrics 信息)。同时监控 API 比较简单,缺乏对外提供的标准。而监控信息的展示(可视化)也没有比较标准的和开源整合的方案。
  • 目标:
    • 指标统计标准化、完善,可以对外提供完善的 metrics 的功能
    • 监控 API 标准化,同时可以适配常用的开源方案(如 Prometheus)
    • 监控信息的可视化与开源方案适配(如 Grafana)
  • 目前的设计
Clone this wiki locally