gpt4 book ai didi

c# - 如果在使用 ConnectionMode.Direct 时不设置 ConnectionPolicy.ConnectionProtocol 会发生什么?

转载 作者:行者123 更新时间:2023-12-02 08:14:27 26 4
gpt4 key购买 nike

我正在读这篇文章article关于 Azure CosmosDB 连接策略。

它表示如果您使用ConnectionMode = ConnectionMode.Direct,那么您还需要设置ConnectionProtocol

这个articleConnectionMode.Direct 使用 TCP,所以我认为我应该将 ConnectionProtocol 设置为 Protocol.Tcp

由于 Protocol 枚举的默认值为 Https,如果不设置会发生什么情况,它会默认为 Https >?

如果它默认为 Https,这会导致任何问题吗?

这是我的代码:

var connectionPolicy = new ConnectionPolicy
{
//ConnectionProtocol = Protocol.Tcp, // This is not set!
ConnectionMode = ConnectionMode.Direct,
RequestTimeout = TimeSpan.FromSeconds(10),
UserAgentSuffix = "ING",
RetryOptions = new RetryOptions
{
MaxRetryAttemptsOnThrottledRequests = 5,
MaxRetryWaitTimeInSeconds = 2
}
};

var client = new DocumentClient(new Uri(endpoint), authKey, connectionPolicy, ConsistencyLevel.Session);

这是供引用的Protocol枚举:

public enum Protocol
{
Https,
Tcp
}

我们已经开始收到 ServiceUnavailableException 和 SNAT 端口耗尽错误,所以我想知道这是否与此有关。

最佳答案

对于 V2 SDK,默认值为 Https。您最终将处于 Direct/HTTPS 模式,而不是 Direct/TCPGateway

Direct/HTTPS 虽然有效并且可以工作,但不再是文档上任何建议的一部分 ( https://docs.microsoft.com/azure/cosmos-db/sql/sql-sdk-connection-modes )。如果您需要使用 HTTPs,请使用 Gateway,如果您想使用 Direct,请使用 Direct/TCP

V3 SDK 取消了选择Direct/HTTPS 的可能性,它只是Direct (TCP) 或Gateway (HTTP)。

关于SNAT,请关注https://docs.microsoft.com/azure/cosmos-db/sql/troubleshoot-service-unavailable

直接模式在设计上将使用更多的连接,请确保计算机可以支持该连接,并且您遵循单例模式以避免创建更多连接而不是重用它们。

关于c# - 如果在使用 ConnectionMode.Direct 时不设置 ConnectionPolicy.ConnectionProtocol 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74397287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com