0

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

这就是它的完成方式。

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

建立第一个连接后,创建一个新客户端需要 2 毫秒。所以我猜大部分时间是创建一个到azure的连接并验证安全上下文。

我的问题是,其他人都这么慢吗?(如果不是,那么我猜是我们的网络设置让它变慢了)是否有另一种方法可以更快地连接和创建客户端?

最好的问候马格努斯

4

2 回答 2

1

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

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

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https;

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

于 2018-02-22T14:55:57.000 回答
0

我试图从家里进行连接,它只需要 1-2 秒,而不是 22 秒。所以我想在工作网络设置中有些东西是连接速度慢的原因。

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

于 2017-05-30T18:19:51.703 回答