我曾经使用 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 中,这将是默认行为。