面试题答案
一键面试制定和优化微服务弹性伸缩自动化策略的一般思路
- 基于指标监控
- CPU 使用率:以电商用户服务为例,持续监控 CPU 使用率,若长时间高于 80%,可触发扩容;低于 40% 一段时间,则触发缩容。
- 内存使用率:如商品库存服务,当内存使用率逼近设定阈值(如 90%),启动扩容;降至 60% 以下且持续一定时间,进行缩容。
- 请求响应时间:订单处理服务,若平均响应时间超过 200ms 且持续上升,考虑扩容;响应时间稳定且较低时,进行缩容。
- 请求吞吐量:支付服务,每秒请求数超过 1000 次且持续增长,启动扩容;请求数降至 300 次以下且保持稳定,触发缩容。
- 预测分析
- 历史数据:利用电商历年促销活动数据,分析流量规律,提前规划资源。例如每年双 11 从凌晨 0 点到 2 点流量会爆发式增长,可在 0 点前提前扩容。
- 机器学习预测:构建时间序列模型,结合促销活动时间、广告投放等因素,预测流量变化,提前调整资源。
电商促销场景下的具体处理
- 预热阶段
- 根据预测分析,提前数小时或一天逐步增加相关微服务实例,如商品展示、购物车服务等。例如从活动前 6 小时开始,每小时增加 20% 的实例。
- 进行压力测试,确保新扩容的实例能正常工作,模拟高并发场景,检查服务性能和稳定性。
- 波峰阶段
- 采用动态弹性伸缩策略,以极短的监控周期(如每 1 分钟)监控关键指标。若 CPU 使用率超过 90%,立即增加 50% 的实例;若请求响应时间超过 300ms,马上扩容 30% 的实例。
- 对于一些非核心业务的微服务,如用户反馈服务,可适当降低资源分配,优先保证核心业务,如支付、订单处理服务的资源充足。
- 波谷阶段
- 当流量开始明显下降且趋势稳定后,逐步缩容。例如每 10 分钟减少 10% 的实例,避免缩容过快导致服务不稳定。
- 监控缩容后的服务性能指标,确保业务不受影响。若发现指标异常,可暂停缩容或回滚部分实例。