gpt4 book ai didi

c# - 让 WCF 服务知道 SQL Server Service Broker 消息已到达

转载 作者:太空宇宙 更新时间:2023-11-03 20:13:17 24 4
gpt4 key购买 nike

我正在考虑从 NServiceBus 迁移到 SQL Server Service Broker。

我缺少的部分是“引发事件”部分。当一条消息到达 NServiceBus 时,它会在我的代码中引发一个事件。这非常有效。

对于SQL Server Message Broker,我可以想到两种方法:

  • 创建一个 CLR 存储过程让我的 SQL Server 调用我的 WCF 服务
  • 让我的 WCF 服务不断轮询数据库以查看是否有新消息。
    • 这在 WCF 中可能会出现超时问题。

我已经在其他应用程序(不是 Service Broker 应用程序)上尝试了第二个选项,但效果不佳。

我最喜欢第一个,但对我来说似乎非常不合常规。

在我开始编码之前,我想我会问我是否错过了这里的大图。其他应用如何使用 SQL Server Service Broker 执行此操作?

注意:目前,我使用 NServiceBus 解决方案每天处理大约 1/2 百万条消息。我需要我的解决方案足够强大以应对这种吞吐量。

最佳答案

使用 SQL Server Service Broker,您不需要轮询。 WAITFOR (RECEIVE ...) 构造是非轮询的,并且会阻塞,直到消息可用于处理(不仅是“到达”,它还会考虑 correlated locking )。 Service Broker 还使用 internal activation这完全消除了对外部服务的需求,并自动按需运行您的代码。作为记录,我知道使用 Service Broker 和激活的系统每 分钟 处理 1/2 百万条消息。

但尚不清楚所有这些如何与 WCF 集成。如果您的两个端点都是使用 SQL Server Service Broker 进行通信的 SQL Server 实例,那么 WCF 就没有太多空间了。

关于c# - 让 WCF 服务知道 SQL Server Service Broker 消息已到达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18540644/

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