gpt4 book ai didi

c# - 用于 ASP.NET Web 服务的异步持久消息队列服务解决方案是什么?

转载 作者:太空狗 更新时间:2023-10-30 00:30:43 27 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我有一个 ASP.NET Web 服务,它需要发布另一个服务(单独的进程)的异步处理请求。因此,要求是一个持久队列。服务器是运行 SQL Server 的 Windows Server。

我考虑使用数据库中的表编写自己的排队服务,在该表中发布请求并通知另一个服务新行然后处理。在服务失败的情况下,在启动时,它会处理队列表中任何未处理的项目。

然后我考虑不使用 DB 来维护队列和管理 ASP.NET 应用程序内的进程内队列。为了持久性,所有作业都将写入数据库以在发生故障时进行检索。

但是,此选项可能不合适,因为其想法是使用通用排队服务来处理来自任何服务器应用程序的作业。

于是我开始了一段探索之旅,从如何通知我的监听服务在数据库中插入一行开始。我读过 query notifications in SQL Server这让我进入了一个关于 planning for notifications 的页面.我在那里了解到 Windows Service AppFabric其中包括 persist workflows 的能力.我不确定这在这里是否相关,但这让我阅读了 Azure AppFabricService Bus ,两者都是排队消息的理想选择(尽管 Azure 不是一种选择,因为出于合规性原因,我们的服务器不得将数据发送到环境之外)。

最后得知微软将no longer be supporting AppFabric from 2017 (所以对我来说不再是一个选择)还有 Redis将是首选武器。

然后,在与同事讨论上述问题后,MSMQ(或类似的排队软件)被认为可能是最好的选择,因为它允许我们进行更多的控制。

因此,根据我的要求和上述发现之旅,任何关于什么是可遵循的好策略或可考虑的好解决方案的建议将不胜感激。

最佳答案

RabbitMQ现在通常比 MSMQ 更受关注——它在金融行业很重要,而且非常有企业精神。

好的讨论和比较是herehere .

关于c# - 用于 ASP.NET Web 服务的异步持久消息队列服务解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33895553/

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