我正在考虑从 NServiceBus 迁移到 SQL Server Service Broker。
我缺少的一件是“Raise Event”部分。当一条消息到达 NServiceBus 时,它会在我的代码中引发一个事件。这效果很好。
对于 SQL Server Message Broker,我可以想到两种方法:
- 创建一个 CLR 存储过程,让我的 SQL Server 调用我的 WCF 服务
- 让我的 WCF 服务不断轮询数据库以查看是否有新消息。
- 这可能会在 WCF 中出现超时问题。
我已经尝试过使用其他应用程序(不是 Service Broker 应用程序)的第二个选项,但效果不佳。
我最喜欢第一个,但对我来说似乎非常不合常规。
在我开始编码之前,我想我会问我是否错过了这里的大局。其他应用程序如何使用 SQL Server Service Broker 执行此操作?
注意:我目前使用 NServiceBus 解决方案每天处理大约 1/2 百万条消息。我需要我的解决方案足够强大以处理这种吞吐量。