首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何扩展多个监听器的SQS FIFO队列

如何扩展多个监听器的SQS FIFO队列
EN

Stack Overflow用户
提问于 2019-05-03 02:45:50
回答 1查看 2.1K关注 0票数 2

我有三个SQS队列,每个队列在EC2实例中都有一个数据投影侦听器守护程序作为docker pod (SQL Server、PostgreSQL、Elastic Search等)。

所有队列都具有如下相同的设置(稍后设置的死信队列)。

代码语言:javascript
复制
Queue Type: FIFO    
Messages Delayed:   0
Content-Based Deduplication:    Enabled
Default Visibility Timeout: 30 seconds
Message Retention Period:   14 days
Maximum Message Size:   256 KB

这是我正在设计的使用DynamoDB Stream => Lambda SQS => SQS队列的事件源架构的一部分(由于SNS不支持作为订阅者的先进先出队列)

启用Content-Based Deduplication以避免队列中的重复消息,因为任何队列的Lambda路由器中总是可能出现错误。

现在,我还将每条消息的MessageGroupId设置为AggregateId,以对它们进行分组,但并不真正理解消费者端是如何利用这一点的;

目前,每个SQS队列只有一个消费者,但如果我想扩展消费者该怎么办。确保多个使用者不会处理来自同一MessageGroupId的消息是应用程序关心的问题;-这是不可接受的,因为使用先进先出队列是由于系统中事件的顺序保留!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-03 08:49:18

如果从FIFO Amazon SQS队列接收到一条消息,但该消息仍然不可见(“正在进行”),则SQS将不会提供具有相同MessageGroupId的另一条消息。

因此,同一队列上的多个使用者将接收具有不同MessageGroupId的消息,并且给定MessageGroupId内的消息顺序将被保留。

这里很重要的一点是,在希望保持顺序的地方使用不同的MessageGroupId,但不要对每条消息使用相同的MessageGroupId

请参阅:AWS SQS FIFO - How to get more than 10 messages at a time?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55958466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档