概览
ABetterChoice 服务端 SDK 让你在自己的服务器上本地求值实验分组与 feature flag。
当前正式可用:Go 服务端 SDK。C++ 服务端 SDK 在
Settings → SDK&Key下标记为Coming soon。 如果你的服务端运行时不是 Go,可以先用 HTTP API 接入。
通常使用服务端 SDK 包含三个步骤:
1. 初始化
应用服务器启动时,用 项目 ID 与 API 访问密钥 初始化 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 秒。
平台如何保证可靠性?
配置服务器在全球多个区域部署,且可自动扩容以应对流量尖峰。