gpt4 book ai didi

C# Service Bus 多个监听器都收到相同的消息 (BrokeredMessage)

转载 作者:行者123 更新时间:2023-11-30 15:21:32 25 4
gpt4 key购买 nike

我曾经使用 RabbitMQ 作为消息传递平台,但从未遇到过任何问题 - 不幸的是,我们最近将基础架构移至 Azure,但他们不提供 RabbitMQ 服务器,因此我考虑尝试一下服务总线扩展名。

我有一名作家和多名读者。目前,读者将各自阅读不同的消息(消息竞争模式 - 例如有利于负载平衡)。

我想要的是,所有读者都会收到相同的消息并自行处理。

读者:

string connectionKey = "....";
this.client = QueueClient.CreateFromConnectionString(connectionKey, "dev");
this.client.OnMessage((message) =>
{
try
{
Console.WriteLine("Message received: " + message.GetBody<string>());
Console.WriteLine("Message ID: " + message.MessageId);
// message.Complete();
}
catch (Exception e)
{
Console.WriteLine("Exception " + e.Message);
}
});

作者:

Console.WriteLine("Sending message " + message);
BrokeredMessage msg = new BrokeredMessage(message);
this.client.Send(msg);

我已经寻找解决方案两个小时了,但找不到任何东西。在 RabbitMQ 中,这将是默认行为。

Image showing pattern of what I have vs. what I need

最佳答案

Azure 服务总线支持多种范例,其中之一称为“主题”:

How to use Service Bus topics and subscriptions

与服务总线队列(其中每条消息均由单个使用者处理)相比,主题和订阅使用发布/订阅模式提供“一对多”形式的通信。

上面的链接演示了核心主题概念以及代码示例。

关于C# Service Bus 多个监听器都收到相同的消息 (BrokeredMessage),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367226/

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