Overview

Roadmap 时间点:

版本 Milestone 主要特性
0.2.0 2018.9 异步调用支持、热点限流
0.4.0 2018.10 集群限流(基础版)、黑白名单功能
0.6.0 2018.11 指标/监控 API 标准化,适配 Prothemeus 等
0.8.0 2018.12 Reactive, Functional 支持
1.0.0 2019.1 - 2019.2 Service Mesh 支持

详细 Roadmap:

功能点 优先级 重要性 Milestone 版本
注解支持 0.1.1
⚡️异步调用支持 0.2.0
⚡️热点限流 0.2.0
⚡️集群限流(基础版) 0.4.0
黑白名单功能 0.4.0
与更多主流框架适配 流动进行
与更多的数据源适配 流动进行
⚡️指标/监控 API 标准化 0.6.0(长期)
⚡️Reactive 支持 0.8.0(长期)
高版本 Java 适配(JDK 9+) 流动进行
Service Mesh 支持 1.0.0(长期)
多语言支持(集群限流客户端) 长期
智能化(动态规则调配) 1.1.0(长期)

异步调用支持

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

热点限流

  • Milestone: 0.2.0
  • Motivation:将内部的热点限流功能加入到开源版本,同时进行优化,可以解决热点访问的问题。

集群限流与 Service Mesh

  • Milestone: 0.4.0
  • Motivation:引入集群限流的功能,与单机限流相组合形成两道屏障。同时,集群限流可以作为服务对外提供,可以为 Service Mesh 提供集群流量防护的服务。

监控标准化

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

Reactive 支持

  • Milestone: 0.8.0
  • Motivation: 响应式编程是 Java 社区未来的发展趋势。越来越多的人开始用 RxJava 1.x/2.x,Java 9 也将 Reactive Streams 的接口引入了 JDK,Spring 5.0 也引入了 Spring WebFlux / Project Reactor。可以说后续 reactive 是发展趋势。
  • 目标:支持 Reactive 的形式(包括指标统计的实现,限流、降级、负载等算子的实现)

更多适配(生态)

  • Milestone: 流动进行
  • 复杂度:低
  • Motivation:与更多的主流框架适配,与更多的动态配置/存储适配,可以吸引更多的用户。
  • 目标:
    • 框架适配:如更完善的 gRPC 适配、RxJava 适配等
    • DataSource 适配:如 etcd, ZooKeeper, Git, MongoDB, MySQL 等
  • Note:欢迎大家来贡献

高版本 Java 适配

  • Milestone: 0.4.0(流动进行)
  • Motivation:Java 现在迅猛发展,JDK 11 都快 GA 了。虽然大部分开发者仍在使用 Java 8,但是 JDK 发布下一个 LTS 版本后,预计逐渐会有一些开发者开始用新的 LTS 版本。因此对高版本的 Java 适配可以提上日程了。
  • 主要关注点:JDK 9 引入的模块化可能会有比较大的影响。后续可以先在 CI 上开启高版本 JDK 的构建,看看有什么问题。

智能化

  • Milestone: 1.1.0(长期进行)
  • Motivation:当前用户需要根据系统的情况自己评估出一些数据来设定规则。如果能够比较好地利用历史的指标统计数据,根据设计的算法去动态地去调配规则,对用户来说是非常有吸引力的。

原文: https://github.com/alibaba/Sentinel/wiki/Roadmap