使用MSMQ的邮件系统(la MassTransit)的客户端要求?

时间:2010-01-26 21:07:54

标签: client-server msmq message-queue messaging masstransit

之前没有使用过MSMQ,我根本不清楚客户端环境要求使用它。

我正在设计一个与遗留系统集成的客户端/服务器解决方案,而且我是通过消息传递出售的。我想使用像MassTransit这样的服务总线实现,但这需要MSMQ。

我是否必须确保每台客户端PC都安装了MSMQ?

我不认为将此销售给管理员密码的管理员的前景非常好。

现在我可以可靠地期望每台客户端计算机都安装了Windows XP Professional,但这可能会改变,我的理解是默认情况下不会在更新的操作系统上安装MSMQ,这将是一个更大的麻烦。

任何人都可以为我阐明这是如何运作的吗?我无法想象任何商业软件如何依赖MSMQ,除非我遗漏了一些重要的东西(我希望我是)。

(服务器不是问题 - 我完全可以控制它。)

3 个答案:

答案 0 :(得分:5)

ESB(甚至像MassTransit或NServiceBus这样的轻量级选项)实际上并不是为客户端/服务器通信而设计的。如果您有一个需要与后端服务通信的胖客户端应用程序,那么构建客户端与之通信的SOAP和/或REST层可能更为明智。在该服务层后面,您可以根据扩展要求在内部使用消息传递。消息传递对于处理高动态负载以及其他技术(如缓存)非常有用。

如果要在客户端上进行消息传递,可以考虑使用代理样式的消息传递系统(ActiveMQ适合此处,它是常规的TCP / IP连接)并从客户端连接到它。这是一种方法,取决于你的情况,不一定是最好的方式。 MassTransit可以使用ActiveMQ,允许您将MSMQ / ActiveMQ的编程API抽象为更通用的传输接口。

在设计分布式系统时有很多选择,无论是否需要客户端到客户端的通信,客户端到服务器的通信都可以真正帮助区分各种技术选项。

答案 1 :(得分:2)

回答您的基本问题。是。每台PC都必须运行MSMQ服务。我不认为MSMQ是针对一般用户类软件,而是针对企业,服务器到服务器的通信。我当然可能是错的,但考虑到你的限制,我不知道它是如何用于商业软件的。

答案 2 :(得分:0)

根据我的经验,答案是:使用masstransit时,请使用rabbitmq而不是msmq。 cf Masstransit: Can it use central msmq server? (Or should I start w/RabbitMQ from the start?)