加载中...
队列负载均衡模式在任务生产方与处理服务之间插入一个消息队列作缓冲:突发流量先堆积在队列中,服务按自身稳定速率消费,从而削峰填谷,避免高峰把下游压垮。它是构建高可用异步系统的基础云设计模式。

| 英文名 | Queue-Based Load Leveling |
| 出处 | Azure 云设计模式 |
| 核心机制 | 消息队列缓冲 |
| 解决问题 | 突发流量冲击下游 |
| 相关模式 | 竞争消费者、限流 |
队列负载均衡模式(Queue-Based Load Leveling Pattern,又译基于队列的负载削平)是一种云设计模式:在任务的产生方和处理服务之间引入消息队列作为缓冲区,请求以任意速率入队,服务以自己可持续的速率出队处理,把尖峰负载平滑成稳定负载。
许多系统的流量高度不均:秒杀开始的一瞬间、整点定时任务触发时,请求量可能是平时的几十倍。若让请求直接打到服务与数据库上,高峰期的超时和崩溃会波及所有用户。该模式源自微软 Azure 架构中心整理的云设计模式目录,思想与水库调蓄洪水相同:队列吸收洪峰,下游按最大安全流量放水。它与竞争消费者模式常配合使用,前者解决何时处理,后者解决由谁处理。
典型场景包括秒杀下单后异步创建订单、批量报表生成、消息推送、物联网设备数据上报入库等。凡是允许稍后完成的操作,都可以用队列把瞬时压力转化为持续的小流量。
问:这个模式的代价是什么?答:处理从同步变为异步,用户不能立刻拿到最终结果,需要引入任务状态查询或完成通知;同时队列本身成为关键组件,必须保证其高可用与持久化。
问:队列一直积压怎么办?答:持续积压说明消费能力长期低于生产速率,削峰只能应对突发而非常态过载,需要扩容消费者、优化处理耗时,或在入口处限流与拒绝多余请求。

| 英文名 | Queue-Based Load Leveling |
| 出处 | Azure 云设计模式 |
| 核心机制 | 消息队列缓冲 |
| 解决问题 | 突发流量冲击下游 |
| 相关模式 | 竞争消费者、限流 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧