Skip to content

概览

ABetterChoice 服务端 SDK 让你在自己的服务器上本地求值实验分组与 feature flag。

当前正式可用:Go 服务端 SDK。C++ 服务端 SDK 在 Settings → SDK&Key 下标记为 Coming soon。 如果你的服务端运行时不是 Go,可以先用 HTTP API 接入。

通常使用服务端 SDK 包含三个步骤:

1. 初始化

应用服务器启动时,用 项目 IDAPI 访问密钥 初始化 SDK。SDK 会向全球部署中最近的配置 服务器发起请求,拉取必要的实验分配与规则等配置,用于本地求值实验与 feature flag。初始化 后,服务端 SDK 每 3 秒向配置服务器轮询一次更新并写入本地缓存,确保求值始终高速。

2. 实验与 feature flag 求值

业务代码通过 getExperiment / getFeatureFlag 调用 SDK 时,SDK 用本地缓存的配置计算结果。 因为求值发生在本地,时延非常低。

3. 上报实验曝光

对启用实验的实验与 feature flag,平台提供两种曝光上报方式:

  • 调用 getExperiment / getFeatureFlag 时由 SDK 自动上报;
  • 需要稍后再上报的场景,调用独立 API LogExperimentExposure 手动上报。

两种方式下,曝光都先在本地累积,再周期性刷到消息队列。

常见问题

服务端 SDK 的求值在哪里发生?

全部求值逻辑都在 SDK 内本地完成。

服务端 SDK API 的整体时延?

求值在 SDK 内基于本地缓存进行,时延极低。

我的变更多久能到用户?

更新传播时延包含两段:DB 到全球配置服务器,以及配置服务器到 SDK 的轮询。总体约 15 秒。

平台如何保证可靠性?

配置服务器在全球多个区域部署,且可自动扩容以应对流量尖峰。