Auto-sync: update nexus workspace
This commit is contained in:
39
wiki/concepts/Competing-Consumer-Pattern.md
Normal file
39
wiki/concepts/Competing-Consumer-Pattern.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: "Competing Consumer Pattern"
|
||||
type: concept
|
||||
tags:
|
||||
- EDA
|
||||
- Architecture
|
||||
- Messaging
|
||||
- Cloud
|
||||
last_updated: 2026-04-14
|
||||
---
|
||||
|
||||
## Aliases
|
||||
- Competing Consumers
|
||||
- 竞争消费者模式
|
||||
- 多消费者竞争模式
|
||||
|
||||
## Definition
|
||||
竞争消费者模式(Competing Consumer Pattern)指多个消费者共享同一个消息队列,但每条消息只被其中一个消费者处理。确保消息处理的负载均衡和故障容错。
|
||||
|
||||
## Implementation
|
||||
- **AWS SQS**:设置多个消费者从同一标准队列拉取消息,SQS 自动将消息分配给可用的消费者
|
||||
- 消费者之间的竞争通过 SQS 的隐式负载均衡机制实现
|
||||
|
||||
## Key Characteristics
|
||||
- **Mutual Exclusion**:每条消息只被一个消费者处理
|
||||
- **Load Balancing**:消息自动分配给空闲的消费者
|
||||
- **Fault Tolerance**:某消费者失败,其获取的消息会重新入队供其他消费者处理
|
||||
- **Ordering Not Guaranteed**:标准 SQS 不保证消息顺序
|
||||
|
||||
## Use Cases
|
||||
- 并行处理大量独立任务(如图片处理、文件转换)
|
||||
- 将工作负载分发到多个 Lambda 函数或 ECS 任务
|
||||
- 实现工作线程池的消息分发
|
||||
|
||||
## Ordered Alternative
|
||||
如需保证消息顺序,使用 **SQS FIFO 队列** + **单一消费者**,或在 Kinesis 中使用分片键保证同类型消息有序处理。
|
||||
|
||||
## Sources
|
||||
- [[public-cloud-learning-sessions-opentext-event-driven-architecture-part-2-2024091]]
|
||||
Reference in New Issue
Block a user