Azure 中继混合连接横向扩展

Azure Relay Hybrid Connection Scale Out

鉴于我们有多个 OnPrem 客户端连接到云中的服务的标准混合 OnPrem/Cloud 场景,我们如何从横向扩展服务(即多个侦听器服务多个客户端)为它们提供服务?

假设我们有一个实现混合中继侦听器的云服务,为了服务我们所有的客户,我们将其扩展到 N 个实例(最多 25 个)。通过记录的负载平衡功能将客户端分配给每个实例,以便每个侦听器为一部分客户端提供服务。如果我们需要向所有客户端广播消息(比如聊天应用程序)怎么办?据我所知,任何单个侦听器都无法访问所有客户端连接。我错过了什么吗?

我以 https://docs.microsoft.com/en-us/azure/service-bus-relay/relay-hybrid-connections-dotnet-get-started 为例,通过建立多个服务器(侦听器)和连接到每个服务器的多个客户端(连接)来解决这个问题,但似乎没有一种广播或查找到命名空间的所有连接的方法,仅广播或查找当前侦听器范围内的连接。

but there doesn't seem to be a way to broadcast or lookup ALL of the connections to the namespace, only the connections in the current listener scope.

A​​zure Relay Hybrid 的消息传输是基于连接的。如果客户端没有连接到服务器,我们就不能从服务器向客户端发送消息。

广播场景建议使用Azure Service Bus主题。创建主题后,您可以为所有客户端订阅该主题。当我们向主题发送消息时,所有订阅者都会收到消息。

关于如何使用Azure Service Bus的话题,link下面供大家参考。

Get started with Service Bus topics(.NET)