gpt4 book ai didi

c# - 使用 msmq 队列对服务进行负载平衡?

转载 作者:行者123 更新时间:2023-11-30 15:06:16 24 4
gpt4 key购买 nike

是否可以使用 MSMQ 队列来负载平衡请求?如果我有客户端 1-n 向 WCF 服务发送请求,然后将每个请求排入队列,并且在后台有 1-n 个服务器,每个服务器在下一个可用请求可用时获取它们,我会假设这有效地实现了负载平衡。 .但是,我将如何得到回复?我意识到我可以订阅我的 WCF 服务中的“完整”事件,但是当我只关心一个事件时我必须解析所有事件。我如何使用这种架构实现某种回调机制?

最佳答案

如果您使用 MSMQ 发送事件,则没有“获取响应”的内置概念。

这里有一个解决方案:每个客户端都可以有自己的消息队列来监听。当工作人员完成他们的任务时,他们可以将“完成”消息发送回客户端。

但是服务器怎么知道客户端消息队列的地址呢?

一种方法是在每个函数中提供客户端的消息队列地址作为参数。

更好的方法是将此地址作为自定义 header 值包含在内。出于两个原因,自定义 header 解决方案是一种更好的方法。首先,这可以通过客户端的配置文件进行配置,允许在部署后更改队列详细信息。其次,通信“管道”的细节绝对不希望侵入函数调用抽象层,而自定义 header 解决方案可让您避免这种情况。

参见 this question有关使用自定义 header 的示例。

关于c# - 使用 msmq 队列对服务进行负载平衡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8030727/

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