我正在研究从NServiceBus迁移到SQL Server Service Broker。
我遗失的一件是“提升事件”部分。当消息到达NServiceBus时,它会在我的代码中引发一个事件。这很有效。
对于SQL Server Message Broker,我可以想到两种方法:
我已经尝试了第二个选项与其他应用程序(不是Service Broker应用程序),但效果不佳。
我最喜欢第一个,但对我来说似乎非常传统。
在我开始编码之前,我想我会问我是否错过了这里的大图。其他应用程序如何使用SQL Server Service Broker执行此操作?
注意:我目前使用NServiceBus解决方案每天处理大约50万条消息。我需要我的解决方案足够强大,以处理那种通过。
答案 0 :(得分:3)
使用SQL Server Service Broker,您无需轮询。 WAITFOR (RECEIVE ...)
构造是非轮询并阻塞,直到消息可用于处理(不仅仅是'到达',它还考虑correlated locking)。 Service Broker还使用internal activation,完全无需外部服务,并按需自动运行代码。为了记录,我知道使用Service Broker和激活的系统每分钟处理1/2万条消息。
但尚不清楚所有这些如何与WCF集成。如果两个端点都是使用SQL Server Service Broker进行通信的SQL Server实例,则WCF没有太多空间。
答案 1 :(得分:1)
我很好奇 - 是什么让你决定离开NServiceBus?
另外,您是否考虑过使用SQL Server传输(v4中的新增功能)来处理此集成方案?最后,我建议从讨论组中查看这个帖子以获得一些指示:
http://groups.yahoo.com/neo/groups/nservicebus/conversations/topics/17931
答案 2 :(得分:1)
Service Broker External Activator怎么样?如果你想尝试一下,那么方法将是......,
它将如何运作......?
注意:您必须小心设置configuration外部激活窗口服务。
没有Service Bus这是唯一有效的解决方案,我们确实使用过它。