用途:在不重新部署的前提下控制功能可用性,适用于渐进式发布(1%→10%→100%)、A/B 测试、问题功能的紧急关闭、面向特定用户的测试版功能以及按环境区分功能。
主要能力:支持四种开关类型——布尔型(简单开关)、百分比型(渐进发布)、用户列表型(测试用户)和分群型(如 tier=pro)。提供 TypeScript 与 Python 两套实现,包含 FeatureFlags 核心类、基于 Redis 的 DynamicFeatureFlags 动态加载(默认每 30 秒刷新)、Express 中间件、FastAPI 依赖注入、React 的 FeatureFlagProvider 与 useFeatureFlag Hook,以及管理 API(查询、设置、删除开关和渐进发布辅助接口)。百分比发布使用一致性哈希,保证同一用户始终得到相同结果。
使用方式:定义 FlagConfig 与 UserContext,构造 FeatureFlags 实例后调用 isEnabled(flagName, user) 或 evaluateAll(user);动态场景下用 Redis 存储配置并定期刷新;服务端可通过中间件把评估结果挂到请求上,前端通过 /api/features 获取已评估的开关。
限制与注意事项:资料未提供安装命令、依赖版本、收费或价格信息。最佳实践包括使用一致性哈希、新开关默认关闭、全量发布后清理旧开关、记录开关评估、缓存配置避免每次请求访问 Redis;常见错误有使用随机百分比、不清理旧开关、硬编码开关名、未测试两条路径以及发布后忘记移除开关检查。