5

有没有办法使用 SQL Server 作为物理消息传输,而不是使用 NServiceBus 的内置 MSMQ 消息传输?

谢谢

4

5 回答 5

3

在 NServiceBus 4.0 上,您现在可以只使用Sql Server 作为传输机制,因此您不必实现 ITransport 等。

于 2013-08-08T23:27:06.917 回答
3

SQL Server 包含Service Broker形式的内置消息传递。这为您提供了不同的高效、高速、高吞吐量、异步和可靠的 SQL Server 实例之间的消息传输。考虑到 SQL Server Express 支持 Service Broker 并且我知道部署使用数十、数百个 Express 实例地理分布,与中央更高版本的 SQL 实例交换消息,仅针对 SQL 实例的事实并不像听起来那么糟糕.

主要问题是缺少 C#/.Net API,不支持 WCF 通道,也不支持 NServiceBus。有各种项目试图解决这个问题,或多或少都取得了成功。最终这将取决于决定的驱动因素是什么:与现有的消息总线(如 NServiceBus)集成,或者以依赖 SQL Server 专有总线为代价的原始性能和可靠性。

于 2010-05-07T17:18:14.757 回答
3

很抱歉回答这么老的话题,但是有一个使用 SQL 服务器作为消息传输的 .Net 消息总线项目:NGinn.MessageBus(位于http://code.google.com/p/nginn-messagebus/)。这是我专门为已经在使用 SQL Server 的应用程序创建的宠物开源项目。该项目已经足够成熟,可以在生产中使用。更多信息可以在项目网站上找到。

于 2011-09-20T10:50:53.850 回答
3

在 NServiceBus 3.0 中,与 2.6 相比,我们使插入您自己的传输机制变得更加容易。在 2.6 中,您将实现巨大的 ITransport 接口。在 3.0 中,您只需要实现 ISendMessages 和 IReceiveMessages

https://github.com/NServiceBus/NServiceBus/blob/master/src/unicast/NServiceBus.Unicast.Queuing/ISendMessages.cs

https://github.com/NServiceBus/NServiceBus/blob/master/src/unicast/NServiceBus.Unicast.Queuing/IReceiveMessages.cs

于 2011-09-20T11:30:57.710 回答
2

您可能希望研究实现自定义 ITransport 来完成此操作。

于 2010-05-07T21:38:58.877 回答