我有一个服务器,它需要向多个客户端发送消息,让客户端知道需要做一些事情。

我正在尝试通过使用 Azure 事件中心来实现这一点。

我使用以下代码发送消息:

await eventHubClient.SendAsync(
    new EventData(Encoding.UTF8.GetBytes(String.Format("Message {0}, {1}", i, sMessage))),
    "1")
    .ConfigureAwait(continueOnCapturedContext: false);
await eventHubClient.CloseAsync();

我使用两个 WPF 应用程序作为监听器,它们将在启动时创建监听器并将 EventProcessorHost 保存在私有(private)变量中。

当我发送消息时,哪个听众将处理该消息是随机的。

是否可以使用 Azure 事件中心向多个收件人发送消息?

最佳答案

您需要将每个监听器放在单独的 Consumer Group 中。

同一消费者组的监听器是“竞争消费者”,即第一个锁定事件中心分区的人获胜。

关于Azure 事件中心多个收件人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44430842/

10-12 22:08