Update nexus: fix conflicts and sync local changes

This commit is contained in:
Shen Wei
2026-04-26 12:06:50 +08:00
parent 191797c01b
commit f09834b5a5
2443 changed files with 254323 additions and 255154 deletions

View File

@@ -1,101 +1,101 @@
---
title: "Kill Switch (应急切断开关)"
tags: [devops, disaster-recovery, reliability, feature-management, emergency-response]
created: 2026-04-25
---
# Kill Switch (应急切断开关)
**Kill Switch**(应急切断开关)是 [[Feature Flag]] 的一种紧急用法——在生产环境出现故障时无需重新部署代码即可绕过或关闭故障组件的机制。Kill Switch 是 [[High Availability]] 的软件层保障。
## Definition
Kill Switch 是部署在关键系统路径上的功能开关,用于在紧急情况下将流量切换到备用路径、备用组件或降级服务,从而实现秒级 RTO。
## Core Use Cases
| 场景 | Kill Switch 动作 | RTO |
|------|-----------------|-----|
| 支付网关异常 | 切换到备用支付提供商 | 秒级 |
| 搜索结果异常 | 回退到旧搜索算法 | 秒级 |
| AI 模型产生幻觉 | 切换回上一版本模型 | 秒级 |
| 数据库迁移造成延迟 | 禁用新迁移相关功能 | 秒级 |
| 第三方 API 超时 | 切换到缓存数据或模拟响应 | 秒级 |
## 与传统回滚的对比
| 维度 | 传统部署回滚 | Kill Switch |
|------|-------------|--------------|
| 触发时间 | 分钟到小时 | 秒级 |
| 数据影响 | 可能丢失新事务数据 | 不触碰数据层 |
| 故障窗口 | 整个回滚期间用户受影响 | 切换完成后立即恢复 |
| 操作复杂度 | 需要 CI/CD 流程重新部署 | 配置变更,点击开关 |
| 适用范围 | 全局,影响所有用户 | 可定向(地区/用户群/设备) |
## Kill Switch 的价值
> "Instead of debugging under pressure while users suffer, you flip a switch and fix the problem properly later. Everybody wins."
**传统方式**:在压力下调试 → 用户持续受损 → 时间窗口内无法保证修复质量
**Kill Switch 方式**:立即止血 → 切换到安全状态 → 有时间从容分析问题根源
## 设计原则
### 1. 识别关键路径
- 支付流程
- 用户认证
- 核心数据写入
- 第三方依赖调用
### 2. 预设备用路径
- 备用支付提供商
- 旧版本算法
- 缓存数据
- 降级服务Degraded Mode
### 3. 可观测性优先
- Kill Switch 切换前需要明确知道发生了什么
- 监控指标、告警、日志必须到位
- 切换后需要持续监控备用路径的健康状态
### 4. 文档化
- 每个 Kill Switch 的触发条件需要事先定义
- 团队成员需要知道开关在哪里、如何使用
- 定期演练Chaos Engineering
## Kill Switch 与 [[RTO]]/[[RPO]]
Kill Switch 直接影响 RTO 和 RPO
- **RTO**:从小时级降至秒级(配置变更,不需要代码部署)
- **RPO**:保持近零(不触发数据回滚,不丢失新事务)
## Kill Switch vs. Circuit Breaker
| 维度 | Kill Switch | Circuit Breaker |
|------|-------------|-----------------|
| 触发方式 | 手动(人为决策) | 自动(基于错误率阈值) |
| 适用场景 | 已知故障、有预案 | 未知故障、无预期 |
| 灵活性 | 高(可指定备用路径) | 中(自动跳转到 fallback |
| 协同需求 | 需要备用方案就绪 | 自动感知系统压力 |
## 实践建议
1. **不要过度设计 Kill Switch**:每个关键路径设计 1-2 个关键开关即可
2. **开关命名要语义化**`kill_payment_v2` 而非 `flag_42`
3. **测试 Kill Switch**:定期在非紧急情况下测试开关是否正常工作
4. **监控开关状态**:确保知道哪些开关处于开启/关闭状态
## Related Concepts
- [[Feature Flag]] — Kill Switch 是 Feature Flag 的紧急用法
- [[RTO]] — Kill Switch 将 RTO 从小时降至秒级
- [[RPO]] — Kill Switch 保护 RPO不丢失数据
- [[High Availability]] — Kill Switch 是 HA 的软件层保障
- [[Disaster Recovery]] — Kill Switch 是现代灾备的重要工具
- [[Micro-Recovery]] — Kill Switch 实现 feature 级别的精准恢复
## Sources
- [[sources/rto-vs-rpo-key-differences-for-modern-disaster-recovery.md]]
---
title: "Kill Switch (应急切断开关)"
tags: [devops, disaster-recovery, reliability, feature-management, emergency-response]
created: 2026-04-25
---
# Kill Switch (应急切断开关)
**Kill Switch**(应急切断开关)是 [[Feature Flag]] 的一种紧急用法——在生产环境出现故障时无需重新部署代码即可绕过或关闭故障组件的机制。Kill Switch 是 [[High Availability]] 的软件层保障。
## Definition
Kill Switch 是部署在关键系统路径上的功能开关,用于在紧急情况下将流量切换到备用路径、备用组件或降级服务,从而实现秒级 RTO。
## Core Use Cases
| 场景 | Kill Switch 动作 | RTO |
|------|-----------------|-----|
| 支付网关异常 | 切换到备用支付提供商 | 秒级 |
| 搜索结果异常 | 回退到旧搜索算法 | 秒级 |
| AI 模型产生幻觉 | 切换回上一版本模型 | 秒级 |
| 数据库迁移造成延迟 | 禁用新迁移相关功能 | 秒级 |
| 第三方 API 超时 | 切换到缓存数据或模拟响应 | 秒级 |
## 与传统回滚的对比
| 维度 | 传统部署回滚 | Kill Switch |
|------|-------------|--------------|
| 触发时间 | 分钟到小时 | 秒级 |
| 数据影响 | 可能丢失新事务数据 | 不触碰数据层 |
| 故障窗口 | 整个回滚期间用户受影响 | 切换完成后立即恢复 |
| 操作复杂度 | 需要 CI/CD 流程重新部署 | 配置变更,点击开关 |
| 适用范围 | 全局,影响所有用户 | 可定向(地区/用户群/设备) |
## Kill Switch 的价值
> "Instead of debugging under pressure while users suffer, you flip a switch and fix the problem properly later. Everybody wins."
**传统方式**:在压力下调试 → 用户持续受损 → 时间窗口内无法保证修复质量
**Kill Switch 方式**:立即止血 → 切换到安全状态 → 有时间从容分析问题根源
## 设计原则
### 1. 识别关键路径
- 支付流程
- 用户认证
- 核心数据写入
- 第三方依赖调用
### 2. 预设备用路径
- 备用支付提供商
- 旧版本算法
- 缓存数据
- 降级服务Degraded Mode
### 3. 可观测性优先
- Kill Switch 切换前需要明确知道发生了什么
- 监控指标、告警、日志必须到位
- 切换后需要持续监控备用路径的健康状态
### 4. 文档化
- 每个 Kill Switch 的触发条件需要事先定义
- 团队成员需要知道开关在哪里、如何使用
- 定期演练Chaos Engineering
## Kill Switch 与 [[RTO]]/[[RPO]]
Kill Switch 直接影响 RTO 和 RPO
- **RTO**:从小时级降至秒级(配置变更,不需要代码部署)
- **RPO**:保持近零(不触发数据回滚,不丢失新事务)
## Kill Switch vs. Circuit Breaker
| 维度 | Kill Switch | Circuit Breaker |
|------|-------------|-----------------|
| 触发方式 | 手动(人为决策) | 自动(基于错误率阈值) |
| 适用场景 | 已知故障、有预案 | 未知故障、无预期 |
| 灵活性 | 高(可指定备用路径) | 中(自动跳转到 fallback |
| 协同需求 | 需要备用方案就绪 | 自动感知系统压力 |
## 实践建议
1. **不要过度设计 Kill Switch**:每个关键路径设计 1-2 个关键开关即可
2. **开关命名要语义化**`kill_payment_v2` 而非 `flag_42`
3. **测试 Kill Switch**:定期在非紧急情况下测试开关是否正常工作
4. **监控开关状态**:确保知道哪些开关处于开启/关闭状态
## Related Concepts
- [[Feature Flag]] — Kill Switch 是 Feature Flag 的紧急用法
- [[RTO]] — Kill Switch 将 RTO 从小时降至秒级
- [[RPO]] — Kill Switch 保护 RPO不丢失数据
- [[High Availability]] — Kill Switch 是 HA 的软件层保障
- [[Disaster Recovery]] — Kill Switch 是现代灾备的重要工具
- [[Micro-Recovery]] — Kill Switch 实现 feature 级别的精准恢复
## Sources
- [[sources/rto-vs-rpo-key-differences-for-modern-disaster-recovery.md]]