gpt4 book ai didi

与重复检测一起使用时,主题上的 Azure 服务总线延迟(计划)消息丢失

转载 作者:行者123 更新时间:2023-12-03 04:29:24 25 4
gpt4 key购买 nike

我们在服务总线方面遇到问题。

  1. 我们有一个主题,有两个订阅。
  2. 我们已对这些启用了重复检测,窗口时间为 1 分钟(首先尝试使用 2 秒)。我们使用重复检测来避免在短时间内处理多条消息(以保持消息之间的间隔)
  3. 我们使用消息调度 (ScheduledEnqueueTimeUtc) 来重复消息,使其在 5 分钟后显示,并具有相同的消息 ID(每次按计划创建新消息,并完成旧消息)
  4. 工作流程如下(问题):
    • 首次发布消息(未安排)
    • 消息泵立即使用此消息,并将具有相同详细信息且计划时间为 5 分钟的新消息发送到主题 (UTC),预计它会在 5 分钟后出现
    • 该消息未出现在订阅中
  5. 调试时不会出现此问题
  6. 当我们发送第一条消息时,延迟至少 30 秒(预定),则一切正常
  7. 如果我们在关闭重复检测的情况下重新创建主题和订阅,我们就可以使用上述工作流程获取消息

由于我们不知道已发布的消息发生了什么,因此我们需要帮助来确定问题的根本原因。

最佳答案

这是 ASB 的预期行为。当消息被安排时,它实际上会在代理上排队并延迟出现。服务器端的ASB在消息到达时进行去重,并使用消息ID进行去重。

在您的情况下,如果您延迟发送第二条消息并且处理了原始消息,则将没有任何内容可以进行重复数据删除,并且第二条消息将被排队。如果您不延迟,那么代理将看到与之前发送的尚未完成或 DLQ 的消息相同的 ID,并且该消息将被重复数据删除。

可能的方法是重复使用相同的传输消息ID(用于BrokeredMessage的ID)。如果您需要关联消息,可以使用Properties来实现。

关于与重复检测一起使用时,主题上的 Azure 服务总线延迟(计划)消息丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38993609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com