gpt4 book ai didi

c# - MSMQ 一个(队列)到多个(监听器)场景

转载 作者:可可西里 更新时间:2023-11-01 08:08:54 25 4
gpt4 key购买 nike

我有这样的场景:一个客户端将一条消息发送到一个 msmq 队列实例中,并且有 3 个进程在监听这个队列。我希望能够让这些实例中的每一个都选择不同的消息并进行处理。

我知道这是队列的常见使用场景,我已经使用 MSMQ、.NET 和 C# 编写了工作代码。

但是我想知道 msmq 是否是我在这里的最佳选择 - 文档明确指出 MSMQ 用于“一对一”通信,这意味着不应该有一个以上的监听器。

这让我想知道,我正在为我的用例做正确的解决方案吗?或者反过来,我是否必须为每个监听器创建一个队列并在工作流的前面部分分发消息?

非常感谢提供指向演示 MSMQ 在此类场景中的用法的工作示例的链接。

谢谢

最佳答案

据我了解,您正在使用多个监听器来执行负载平衡之类的操作。这是一个绝对有效的场景,它通常用于集群环境或负载平衡场景,在这些场景中,单个监听器无法使用所有传入消息。顺便提一句。集群 BizTalk 以相同的方式使用 MSMQ 消息。

一对一的意思是一条消息传递给一个监听器,但这并不意味着每个队列只能有一个监听器。如果所有的监听器都做同样的处理,并且不依赖于哪一个会选择消息,它仍然是一对一的。

也可以使用一个队列将一条消息传递给多个监听器。不建议使用 MSMQ 使用此方案,即使在技术上使用触发器是可行的。

如果您的监听器仅监听具有某些特殊属性的消息,确定哪个监听器应该使用该消息(即您在队列中搜索消息),您绝对应该改用三个队列。

关于c# - MSMQ 一个(队列)到多个(监听器)场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6359717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com