
1) 【一句话结论】在交易高峰期,通过“预置资源池+动态弹性扩容”快速增加服务器资源,结合“蓝绿部署+服务降级”保障业务连续性,核心是“快速响应+业务无感知”。
2) 【原理/概念讲解】
3) 【对比与适用场景】
| 方式 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 预置扩容 | 提前启动并保持备用实例 | 响应快(实例已就绪) | 高频突发流量(如新股申购) | 成本较高,资源利用率低 |
| 动态扩容 | 根据负载自动启动实例 | 成本低,资源利用率高 | 持续波动流量 | 响应时间较长(需启动实例) |
| 蓝绿部署 | 双版本并行,逐步切换流量 | 快速回滚,无中断 | 高可用场景 | 需双倍资源 |
| 金丝雀发布 | 逐步切换流量(1%→10%) | 资源利用率高,风险低 | 持续迭代场景 | 切换时间长 |
4) 【示例】
假设使用AWS,监控流量用Prometheus,当QPS超过阈值(如10000),触发CloudWatch事件,调用AWS Auto Scaling增加EC2实例。伪代码:
# 监控逻辑(伪代码)
if prometheus.get('qps') > 10000:
auto_scaling.scale_out(2) # 增加两个实例
# 蓝绿部署
# 1. 部署新版本到新实例(绿)
# 2. Nginx配置:upstream green_servers { server 10.0.0.2:80; server 10.0.0.3:80; }
# 3. 逐步切换流量(如通过权重或DNS轮询)
# 4. 若健康检查(如检查API返回码200)失败,回滚到旧版本(蓝)
# 服务降级配置:高峰时关闭非核心API(如用户画像查询),仅保留核心交易API
5) 【面试口播版答案】
在交易高峰期,我们采用“预置资源池+动态弹性扩容”结合“蓝绿部署+服务降级”的策略。首先,提前在云平台配置资源池(比如AWS的预置实例),确保高峰时能快速启动。当监控到QPS超过阈值(比如新股申购时可能达到10万+),系统自动触发扩容,调用云厂商API增加服务器实例。同时,为了保证业务连续性,采用蓝绿部署:先部署新版本到新实例(绿),通过Nginx的upstream模块逐步将流量切换到新实例,若健康检查发现异常,立即回滚到旧版本(蓝)。另外,设置服务降级策略,比如高峰时先处理核心交易(如申购),简化非核心功能(如减少日志记录),确保核心业务可用。这样既能快速扩容应对高峰,又能保证业务不中断。
6) 【追问清单】
7) 【常见坑/雷区】