gpt4 book ai didi

c# - 如何使用 Azure 服务总线实现 FIFO 主题

转载 作者:太空狗 更新时间:2023-10-29 22:26:11 27 4
gpt4 key购买 nike

一直在寻找具有发布/订阅功能的消息总线。发现AWS SQS不支持FIFO,所以只好放弃。使用Azure服务总线,发现队列确实支持先进先出,但似乎主题不支持先进先出。主题正是我们所需要的,其具有发布到许多子的模型:(

这只是我缺少的一个设置吗?我尝试从 C# 客户端发送 100 条消息,但订阅者以错误的顺序收到消息。任何提示将不胜感激。谢谢!

最佳答案

您可以使用 session 获取 Azure 主题来提供 FIFO 排序,但这与保证消息的处理顺序并不完全相同。

session 在这里并不足以保证。例如,如果您使用 PeekLock 模式,那么超时的消息将返回到队列并进行无序处理。您可以使用 ReceiveAndDelete 模式来对抗这种行为,但这意味着您失去了消息处理的事务性质。

该领域的文档可能比较少,原因之一是它不是常见的用例。消息传递是通过异步通信和排序保证来解耦,从而在应用程序之间创建时间耦合。

理想情况下,您应该设计有效负载,以便顺序无关紧要。如果失败,请使用允许您丢弃无序接收的消息的时间戳。

此处更详细讨论:Don’t assume message ordering in Azure Service Bus

关于c# - 如何使用 Azure 服务总线实现 FIFO 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702033/

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