MST

星途 面试题库

面试题:微服务架构中负载均衡性能指标分析对服务扩容与缩容策略制定的影响

假设你所在的微服务系统采用负载均衡,当分析性能指标发现某些微服务负载过高或过低时,如何依据这些分析结果制定合理的服务扩容与缩容策略?请结合实际场景详细说明。
19.8万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

1. 负载过高时的服务扩容策略

  • 基于 CPU 使用率
    • 实际场景:在电商系统的商品查询微服务中,在促销活动期间,大量用户同时查询商品信息,导致 CPU 使用率持续超过 80%。
    • 策略:当 CPU 使用率连续 5 分钟超过设定阈值(如 80%),启动扩容机制,增加该微服务的实例数量。可以先按照预设的步长,比如每次增加 2 个实例,观察一段时间(如 10 分钟),看 CPU 使用率是否下降到合理范围(如 60%以下)。若仍高于阈值,继续按步长增加实例,直至 CPU 使用率稳定在合理区间。
  • 基于请求响应时间
    • 实际场景:在金融交易系统的转账微服务中,随着业务量增加,转账请求响应时间从正常的 200ms 上升到 500ms 以上,用户体验明显下降。
    • 策略:设定响应时间阈值,如 300ms。当连续 10 个请求的平均响应时间超过该阈值,触发扩容。先增加 1 - 2 个实例,观察 15 分钟内响应时间变化。若没有改善,进一步增加实例,每次增加数量根据系统历史数据和预估业务量调整,直到响应时间恢复到合理范围。
  • 基于请求队列长度
    • 实际场景:在物流配送系统的订单处理微服务中,业务高峰时订单请求大量积压,请求队列长度不断增加。
    • 策略:设置请求队列长度阈值,例如 100 个请求。当队列长度持续 3 分钟超过该阈值,开始扩容。每次扩容增加一定比例(如 20%)的实例数量,观察队列长度变化。如果队列长度在 10 分钟内没有明显下降,继续按比例增加实例,直到队列长度保持在合理范围内。

2. 负载过低时的服务缩容策略

  • 基于 CPU 使用率
    • 实际场景:在旅游预订系统的酒店评价微服务中,在旅游淡季,用户评价操作较少,CPU 使用率长期低于 20%。
    • 策略:当 CPU 使用率连续 15 分钟低于设定的较低阈值(如 20%),启动缩容机制。每次减少 1 - 2 个实例,观察 20 分钟,看 CPU 使用率是否上升到合理范围(如 30% - 60%)。若仍然过低,继续按相同数量减少实例,但每次缩容后都要观察一段时间,防止缩容过度。
  • 基于请求量
    • 实际场景:在教育在线平台的直播回放微服务中,课程结束一段时间后,观看回放的学生数量大幅减少,请求量显著下降。
    • 策略:设定请求量阈值,比如每小时请求量低于 500 次。当连续 2 小时请求量低于该阈值,开始缩容。每次缩容减少一定比例(如 30%)的实例,观察 30 分钟内请求量与系统资源利用率变化。若请求量没有明显变化且资源利用率仍较低,可继续按比例缩容,直至达到合理的资源利用水平。但要注意保留一定数量的实例以应对突发流量。