7

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

我关心的是频道创建的性能。通过服务总线与本地服务器建立新连接需要几秒钟。缓存我的 ChannelFactory 似乎没有多大帮助。通道开通后的传输性能非常好。

关于如何提高性能的任何建议。Azure 中的缓存信息只能在一定程度上完成。我需要连接到本地服务器。

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

更重要的是,有许多不同的本地服务器,因此它不仅仅是一个保持活动的连接。

4

2 回答 2

8

我是 Microsoft 服务总线团队的成员。与发送消息相比,打开连接的成本很高,因为需要多次通信才能让双方确保他们正在相互交谈。

对此的缓解方法是缓存通道而不是缓存 ChannelFactory。为 NetTcpRelayBinding 连接执行的后台保持活动 ping 应确保通道保持打开状态。

于 2012-04-04T20:57:13.853 回答
2

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

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

于 2012-04-03T10:54:26.613 回答