【问题标题】:Azure Relay - Hybrid connection reuseAzure 中继 - 混合连接重用
【发布时间】:2019-04-29 09:29:17
【问题描述】:

为每个客户端请求线程创建如下所示的新 HybridConnectionStream 对象需要时间(~3 秒)

var client = new HybridConnectionClient(new Uri(String.Format("sb://{0}/{1}", relayConfiguration.Value.RelayNamespace, relayConfiguration.Value.ConnectionName)), tokenProvider);

-- (takes ~3 secs) 
HybridConnectionStream relayConnection= await client.CreateConnectionAsync(); 

有没有办法重用/缓存已建立的 HybridConnectionStream 以服务同一客户端的所有未来请求,或者可以创建 HybridConnectionStream 池以更快地满足未来的客户端请求。
我们的实现如下:
移动应用程序上的某些用户操作需要来自本地数据库的数据,因此用户操作会命中 azure 托管的服务结构 api,后者又将请求转发到特定的 azure 中继混合连接,然后是我们自定义的本地托管侦听器服务选择请求并将其转发到本地 Web 服务以选择数据
在这里,服务结构应用程序创建 NEW 混合连接/混合连接流,以便为每个传入用户建立与 azure 中继混合连接的连接请求非常耗时,我们希望避免每次都创建新的混合连接,而是寻找缓存和重用已经创建的昂贵混合连接或尝试创建混合连接池之类的选项。
如果可能,请建议或提出其他建议甚至更好。谢谢

【问题讨论】:

    标签: azure azure-hybrid-connections


    【解决方案1】:

    我们在我们的一个应用服务和几个虚拟机之一之间使用混合连接。 Azure 混合连接有点像 VPN。 (你必须倾斜你的头,眯着眼睛恰到好处。)

    在应用服务中,混合连接可用于访问其他网络中的应用资源。来源:Azure App Service Hybrid Connections

    所以我认为您应该将混合连接视为持久的东西。它是您的网络基础设施的一部分,而不是您需要为每个线程创建的东西。我认为创建混合连接所需的时间量与这种想法是一致的。

    【讨论】:

    • 感谢您的回复,但我的问题与“Azure 中继混合连接”有关,而不是与“Azure 应用服务混合连接”有关。
    • 作为提高性能的一种尝试,建议对所有用户对本地资源的请求使用一个公共混合连接,在这种情况下如何确保从混合连接收到的响应是针对所有用户的请求/响应通过公共连接。请指教
    【解决方案2】:

    保持 HybridConnectionStream 打开并重复使用它。当您仍然需要它时不要关闭它。您可以通过单个流发送多条消息。它是读/写的,所以应该不是问题。

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 2018-11-26
      • 2019-05-05
      • 2018-05-12
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      相关资源
      最近更新 更多