4

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

我正在设计一个将与遗留系统集成的客户端/服务器解决方案,并且我在消息传递方面很受欢迎。我想使用像 MassTransit 这样的服务总线实现,但这需要 MSMQ。

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

我不认为我把它卖给管理员密码管理员的前景很好。

现在我可以可靠地期望每台客户端机器都安装了 Windows XP Professional,但这可能会改变,我的理解是 MSMQ 没有默认安装在更新的操作系统上,这将是一个更令人头疼的问题。

谁能帮我解释一下这是如何工作的?我无法想象任何商业软件如何依赖 MSMQ,除非我错过了一些重要的东西(我希望我是)。

(服务器不是问题——我可以完全控制那里。)

4

3 回答 3

5

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

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

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

于 2010-01-28T22:08:18.167 回答
2

回答你的基本问题。是的。每台 PC 都必须运行 MSMQ 服务。我不认为 MSMQ 适用于一般用户类型的软件,而是适用于企业.. 服务器到服务器的通信。我当然可能是错的,但是由于您所问的限制,我也看不出它如何用于商业软件。

于 2010-01-28T14:30:59.393 回答
0

根据我的经验,答案是:使用公共交通时,使用rabbitmq 而不是msmq。cf Masstransit:它可以使用中央 msmq 服务器吗?(或者我应该从一开始就使用 RabbitMQ 吗?)

于 2014-04-25T17:59:18.640 回答