更改SQS FIFO中的去重间隔

25

有没有办法增加 SQS FIFO 队列中的 contentBasedDeduplication 间隔? 在开发人员指南中提到:

 

如果成功发送具有特定消息重复消除 ID 的消息,则可以成功接受具有相同消息重复消除 ID 的任何消息,但在 5 分钟的去重间隔期间不会传递。

然而,在API 参考 中,他们提到:

 

在 ContentBasedDeduplication 生效时,在去重间隔内发送的具有相同内容的消息将被视为重复消息,并且只会传递一条消息的副本。

当我尝试创建 FIFO 队列时,我没有看到更改重复消除间隔的选项。那是固定的吗?

2个回答

26
在FIFO队列中,去重间隔固定为5分钟。目前没有办法增加去重时间窗口。
这个问题在2017年的AWS论坛中被提出,但似乎还没有作为一个功能实现。
附注:
设置去重间隔的目的是避免在给定的5分钟内处理相同的消息两次。如果要增加它,似乎会给SQS带来额外的负担,因为它需要更长时间地跟踪先前的消息。
我建议在您的程序和SQS之间设置过滤层,根据您所需的逻辑删除重复项。如果要减少它也是一样。
希望这可以帮到你。

3
是否有一种方法来实现模式,使得仅当队列中存在重复项时才进行去重?我想知道是否可以让生产者在发布消息之前检查队列中是否存在重复的消息......但担心由于竞争条件仍可能出现重复情况,而且我也好奇为什么AWS不提供这样的本地功能? - Matty F

3

无法更改去重时间。即使从队列中删除了消息,去重仍将监视该消息。对于FIFO队列,去重间隔固定为5分钟。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接