Azure Servicebus中继性能

use*_*390 7 performance connection-pooling servicebus azure channelfactory

我正在使用nettcprelaybinding的服务总线.一方是OnPremise服务器,它与服务总线有一个持续的连接.另一端是Azure Web角色,它通过打开相应的服务总线并从服务器获取信息来响应传入的Web请求.

我关心的是频道创作的表现.通过服务总线建立与onpremise服务器的新连接需要几秒钟.缓存我的ChannelFactory似乎没什么帮助.通道打开后的传输性能非常好.

有关如何提高性能的任何建议.Azure中的缓存信息只能在某种程度上完成.我需要连接到onpremise服务器.

我可以以某种方式建立到服务总线的连接池吗?

更重要的是,有许多不同的onpremise服务器,因此它不仅仅是一个保持活跃的连接.

小智 8

我是Microsoft的Service Bus团队的成员.与发送消息相比,打开连接的成本很高,因为双方都需要进行多次通信以确保他们彼此通话.

缓解这一点是缓存一个通道,而不是缓存一个ChannelFactory.为NetTcpRelayBinding连接执行了后台保持活动ping,以确保通道保持打开状态.


Bre*_*key 2

您应该能够汇集连接,但 Azure 负载均衡器将终止空闲时间超过 60 秒的任何打开的连接。因此,如果您缓存的连接时间长于调用之间的连接时间,则需要实现某种心跳模式来帮助保持连接处于活动状态。

您可能需要考虑的另一个选项是 Azure Connect。这允许您创建从云托管资源到本地服务器的 ipsec 点对点连接。它确实需要在您想要连接的本地机器上安装客户端,但有些人已经使用它来建立与本地代理服务的简单网关连接。