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

Azure service bus, long time to create a client

我正在尝试使用 Azure 服务总线来做一些事情 Publish/Subscription。一切正常,但当我尝试从连接字符串创建客户端时,连接需要很长时间。创建客户端大约需要 22 秒。

事情是这样的。

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

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

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

此致 马格努斯

我试过在家里连接,只用了 1-2 秒,而不是工作时的 22 秒。所以我想在工作网络设置中有一些东西是连接速度慢的原因。

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

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

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

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https;

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