Masstransit:它可以使用中央msmq服务器吗? (或者我应该从一开始就使用RabbitMQ吗?)

时间:2014-04-24 21:18:12

标签: rabbitmq msmq masstransit

我设置了Masstransit示例应用程序,一切都很棒。本地操作msmq看起来不错。

现在我开始将masstransit放入我的真实应用程序中。在我的真实应用程序中,我有来自四台服务器的作业,并且处理发生在两个工作系统上。

似乎masstransit总是希望推动:

MSMQ://本地主机/ ...

但我想我会设置一个单独的中央msmq服务器:msmq:/// ...

看来(我可能会遗漏一些东西!如果我关闭,请纠正我!)当使用msmq时,我需要在多台机器上设置msmq,并配置msmq以便从一台机器路由到另一台机器。

我错过了什么吗?

我应该跳过msmq并立即跳转到rabbitmq(这似乎解决了这个问题)?

是否有一些基本的msmq知识(可能不在masstransit文档中)?

谢谢你!

1 个答案:

答案 0 :(得分:1)

首先我建议人们使用RabbitMQ而不是MSMQ,除非你出于某种原因必须使用DTC。即便如此,我建议您重新考虑使用DTC。

但鉴于你有一些约束,你不能战斗。您欢迎使用中央MSMQ服务器,但它并没有提供大量的价值。发送消息的每个服务器必须在本地安装MSMQ,因为它的工作原理。在通过相关的其他计算机发送消息之前,消息实际上最终会在传出队列中结束。如果你有多机MSMQ设置,过去对我来说就像是:

  • Core Machine在/ mt_subscriptions运行MassTransit.RuntimeServices,也许在/ service_1运行一个服务
  • 其他处理机器在/ service_2运行特定的重负载服务,它的配置引用订阅服务的msmq:// coremachine / mt_subscriptions。
  • 另一种具有类似设置的加工机器

因此,对于这3台计算机,您唯一没有msmq:// localhost /是对配置中订阅服务的引用。