HTTP 传输自 MSMQ 3.0 起就可用,但恐怕 MassTransit 不提供使用 HTTP 协议作为队列之间的传输协议的功能。
关于这个有一个非常相似的问题here https://stackoverflow.com/questions/3602422/do-masstransit-or-nservicebus-support-msmq-over-http-transport,尚未得到完全解答。
有谁知道客户端是否可以订阅总线并通过 HTTP 发送/接收消息?这是我愿意实现的架构:
我将在本地网络中拥有 2 台计算机
-
电脑A运行服务器应用程序和 MassTransit.RuntimeServices
-
计算机B运行一个向 A 发送消息的客户端应用程序
我希望他们之间的通信通过http 完成。
我尝试更改地址UseSubscriptionService
to http
代替msmq
,但它不起作用。如果我设置电脑的AMSMQ 服务为强化模式,客户端应用程序运行在计算机B尝试订阅时超时mt_subscriptions
.
Bus.Initialize(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.UseMulticastSubscriptionClient();
sbc.ReceiveFrom("msmq://localhost/test_queue_client");
sbc.UseSubscriptionService("msmq://m3-dev1/mt_subscriptions"); // maybe I could use http instead of msmq, but it doesn't work
});
有什么线索吗?
不,MassTransit 不支持 MSMQ 的 HTTP。理论上,您可以添加自己的支持该功能的传输。 RabbitMQ 在各方面都是比 MSMQ 更好的传输方式,除非您需要注册分布式事务。 RabbitMQ 只需要在盒子之间打开一个端口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)