共用方式為


調整 Azure Cosmos DB .NET SDK v3 的連線設定

重要

本文中的資訊僅適用於 Azure Cosmos DB .NET SDK v3。 如需詳細資訊,請檢視 Azure Cosmos DB SQL SDK 連線模式 Azure Cosmos DB .NET SDK v3 版本資訊Nuget 存放庫和 Azure Cosmos DB .NET SDK v3 疑難排解指南。 如果您目前使用的版本比 v3 舊,請參閱遷移至 Azure Cosmos DB .NET SDK v3 指南,以取得升級至 v3 的協助。

Azure Cosmos DB 是一個既快速又彈性的分散式資料庫,可在獲得延遲與輸送量保證的情況下順暢地調整。 使用 Azure Cosmos DB 時,您不必進行主要的架構變更,或是撰寫複雜的程式碼來調整您的資料庫。 相應增加和減少就像進行單一 API 呼叫或 SDK 方法呼叫一樣簡單。 不過,由於 Azure Cosmos DB 是透過網路呼叫存取,所以您可以在使用 Azure Cosmos DB .NET SDK v3 時,調整連線以達到最高效能。

連線設定

注意

在 Azure Cosmos DB .NETS SDK v3 中,在大多數情況下,直接模式是最適合用來改善工作負載最大的資料庫效能。

若要深入了解不同的連線選項,請參閱連線模式一文。

直接連接模式

.NET SDK 預設連線模式是直接。 在直接模式中,會使用 TCP 通訊協定提出要求。 直接模式會在內部使用特殊的架構來動態管理網路資源,並達到最佳效能。 直接模式中採用的用戶端架構,能讓網路使用率得以預測,並實現對 Azure Cosmos DB 複本的多工存取。 若要深入了解架構,請參閱直接模式連線架構

當您在 CosmosClientOptions 中建立 CosmosClient 執行個體時,可以設定連線模式。

string connectionString = "<your-account-connection-string>";
CosmosClient client = new CosmosClient(connectionString,
new CosmosClientOptions
{
    ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
});

自訂直接連接模式

您可以透過傳遞至 CosmosClient 建構函式的 CosmosClientOptions 來自定義直接模式。 除非使用者對了解取捨感到自在,而且有必要,否則建議使用者避免修改它們。

組態選項 預設 建議需求 詳細資料
EnableTcpConnectionEndpointRediscovery true true 這表示旗標,以啟用從伺服器關閉的連接偵測。
IdleTcpConnectionTimeout 依預設,閒置連接會無限期地保持開啟狀態。 20m-24h 這表示閑置時間量,之後未使用的連接會關閉。 建議值為介於 20 分鐘到 24 小時。
MaxRequestsPerTcpConnection 30 30 這代表透過單一 TCP 連線同時允許的要求數目。 當更多要求同時處於正式發行前小眾測試版時,直接/TCP 用戶端會開啟額外的連線。 請勿將此值設定為低於每個連線的四個要求,或每個連線超過 50 到 100 個要求。 每個連線具有高度平行處理原則的應用程式、具有大型要求或回應,或具有緊密延遲需求的應用程式,在每一個連線有 8 到 16 個要求時,可能會取得較佳的效能。
MaxTcpConnectionsPerEndpoint 65535 65535 這代表可以開啟至每個 Cosmos DB 後端的 TCP 連線數目上限。 此設定與 MaxRequestsPerTcpConnection 一起,會限制同時傳送至單一 Cosmos DB 後端的要求數目(MaxRequestsPerTcpConnection x MaxTcpConnection x MaxTcpConnectionPerEndpoint)。 值必須大於或等於 16。
OpenTcpConnectionTimeout 5 秒鐘 1 秒 這代表嘗試建立連線所允許的時間量。 當時間經過時,會取消嘗試並傳回錯誤。 較長的逾時會延遲重試和失敗。
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort 這表示傳輸堆疊所使用的用戶端連接埠重複使用原則。

自訂閘道連線模式

您可以透過傳遞至 CosmosClient 建構函式的 CosmosClientOptions 來自定義閘道模式。 除非使用者對了解取捨感到自在,而且有必要,否則建議使用者避免修改它們。

組態選項 預設 建議需求 詳細資料
GatewayModeMaxConnectionLimit 50 50 這代表 Azure Cosmos DB 服務中目標服務端點允許的同時連線數目上限。
WebProxy null null 這代表用於 Web 要求的 Proxy 資訊。

下一步

若要深入了解 .NET SDK 的效能秘訣,請參閱 Azure Cosmos DB NET SDK v3 的效能秘訣