【问题标题】:How to manage queue message processing如何管理队列消息处理
【发布时间】:2023-02-10 22:18:25
【问题描述】:

我有服务 A 通过队列与服务 B 通信。

该消息包含的信息要求服务 B 在将其存储到另一个数据库之前联系一个数据库并运行查询。

服务 B 不会返回任何内容,并且与服务 A 异步。

问题是服务 A 正在循环发送消息,这会触发服务 B 的 429 错误。

处理这种情况的最佳方法是什么?

如果有帮助,这两种服务都是 Azure 功能,我使用的是 Azure 的标准存储队列。

TIA!

【问题讨论】:

  • 请参阅 Azure 存储队列 @9​​87654321@。你的服务B是作为队列触发功能实现的吗?您每分钟生成多少条队列消息?每次执行服务 B 需要多长时间?

标签: azure system-design


【解决方案1】:

429 通常与 Rate Limit 有关。您要么一次添加太多消息,要么用于将消息添加到队列的 SDK 以某种方式失败。

您可以通过几种方式修复:

1-实施重试政策

2-每 x 秒添加一次“睡眠”

3-在块中添加更少的消息

【讨论】:

    猜你喜欢
    • 2015-12-16
    • 2020-02-17
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多