跳到主要内容

总体架构设计

下图是 FeatureProbe 的整体架构模块的概览:

featureprobe architecture

主要由如下模块组成:

  • FeatureProbe UI - 为用户提供可视化的功能开关管理和发布的 UI 界面。
  • FeatureProbe API - 为 UI 提供数据管理功能和对外的 Open API 服务。API 设计严格遵守 Restful 规范,同时作为功能管理领域通用 API 不仅为 UI 提供了核心数据管理能力,你也可基于该 API 实现开关规则自动变更和发布。查看 OpenAPI 文档
  • FeatureProbe Server - 提供高性能的开关规则判定引擎和秒级的数据分发能力。
  • FeatureProbe SDK - 我们为所有主流语言提供获取开关规则判定结果的 SDK,能够让你在应用程序中快速接入 FeatureProbe 以实现相应的功能开关能力。

架构特点

FeatureProbe 架构的设计主要考虑了高性能、可弹性伸缩、用户隐私和可扩展性方面。

高性能

由于 SDK 需要集成在你的应用程序运行环境中,所以我们对它采用了高度可容错和高性能的设计,即便 FeatureProbe Server 不可用,也不会影响你应用程序中已经生效的开关规则正常读取, 因为我们对 Server 端的 SDK 采用多级缓存及基于本地内存的规则逻辑计算,支持以纳秒级获取开关的判定结果。

可弹性伸缩

FeatureProbe Server 采用 Rust 语言实现,天然具备高性能和高可靠性。如下图所示,通过快速水平扩容能让你轻松应对大规模流量访问。同时,我们已经在计划采用长连接(Multiplexing)+发布订阅模式进一步提高 Server 的性能,做到使开关规则在变更后能在毫秒级下发和生效。

featureprobe server

用户隐私

因为开关执行仅发生在客户端运行的 SDK 中,所以整体架构也保证了隐私方面。我们不会收集或共享任何用户数据,这也使得我们有信心声明我们符合 GDPR

可扩展性

我们开放了所有的 OpenAPI,您可以基于它进行业务扩展或定制。