Azure服务总线,很长时间来创建客户端

时间:2017-05-29 10:13:13

标签: azureservicebus azure-servicebus-topics

我正在尝试使用Azure服务总线进行一些发布/订阅。一切都按预期工作但当我尝试从连接字符串创建客户端时,需要很长时间才能建立连接。创建客户端大约需要22秒。

这就是它的完成方式。

var subscriptionClient1 = SubscriptionClient.CreateFromConnectionString(_connectionstring, "testTopic", "testSubscription");

当第一次连接完成时,它需要2ms才能创建新客户端。所以我猜大多数时候都是创建与azure的连接并验证安全上下文。

我的问题是,对其他人来说,这是否缓慢? (如果没有,那么我想我们的网络设置会让它变慢)是否有另一种方法可以更快地建立连接和创建客户端?

祝你好运 马格努斯

2 个答案:

答案 0 :(得分:1)

我没有查看ServiceBus SubscriptionClient代码(如果它在GitHub上可用),但是长延迟肯定与无法使用普通Tcp传输的网络上的ConnectivityMode和回退机制有关。探测/回退到https需要大约20秒。

如果我手动告诉Servicebus在安装中使用Https(即避免AutoDetect后备),我知道我拥有的是Https,那么每个SubscriptionClient大约需要1秒。我认为客户端中的传输选择机制可能会快一点。无论如何,这是如何:

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https;

我现在使用AppSetting手动控制它。

答案 1 :(得分:0)

我曾尝试在家中进行连接,只用了1-2秒而不是22秒。所以我猜工作网络设置中有一些东西是导致连接速度慢的原因。

我告诉基础设施工作人员,希望找到原因。如果他们不能很好,那么这不是我们可以使用的东西。即使它在第一次连接后速度更快,第一次连接仍然需要22秒,这是很长时间的简单方法。