다음을 통해 공유


Azure Cosmos DB .NET SDK v3에 대한 연결 구성 조정

Important

이 문서의 정보는 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보다 이전 버전을 사용하는 경우 v3으로 업그레이드하는 데 도움이 필요하면 Azure Cosmos DB .NET SDK 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 인스턴스를 만들 때 연결 모드를 구성합니다.

CosmosClient client = new CosmosClient(
  "<nosql-account-endpoint>",
  tokenCredential
  new CosmosClientOptions
  {
      ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
  }
);

직접 연결 모드 사용자 지정

직접 모드는 CosmosClient 생성자에 전달된 CosmosClientOptions를 통해 사용자 지정할 수 있습니다. 사용자가 장단점을 이해하는 것이 편하고 꼭 필요한 경우가 아니면 수정하지 않는 것이 좋습니다.

구성 옵션 기본값 권장 세부 정보
EnableTcpConnectionEndpointRediscovery true true 서버에서 연결이 닫히는 것을 감지할 수 있도록 하는 플래그를 나타냅니다.
IdleTcpConnectionTimeout 기본적으로 유휴 연결은 무기한으로 열려 있습니다. 20분-24시간 사용하지 않는 연결이 닫힌 후의 유휴 시간을 나타냅니다. 권장 값은 20분에서 24시간 사이입니다.
MaxRequestsPerTcpConnection 30 30 단일 TCP 연결을 통해 동시에 허용되는 요청 수를 나타냅니다. 더 많은 요청이 동시에 실행되면 직접/TCP 클라이언트가 추가 연결을 엽니다. 연결당 4개 요청보다 작거나 연결당 50~100개 이상으로 이 값을 설정하지 마세요. 연결당 병렬 처리 수준이 높고, 요청 또는 응답이 많거나 대기 시간 요구 사항이 엄격한 애플리케이션은 연결당 8~16개의 요청으로 더 나은 성능을 얻을 수 있습니다.
MaxTcpConnectionsPerEndpoint 65535 65535 이는 각 Cosmos DB 백 엔드에 열릴 수 있는 최대 TCP 연결 수를 나타냅니다. 이 설정은 MaxRequestsPerTcpConnection과 함께 단일 Cosmos DB 백 엔드(MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint)로 동시에 전송되는 요청 수를 제한합니다. 값은 16보다 크거나 같아야 합니다.
OpenTcpConnectionTimeout 5초 1초 연결 설정을 시도하는 데 허용되는 시간을 나타냅니다. 이 시간이 경과하면 시도가 취소되고 오류가 반환됩니다. 시간 제한이 길어질수록 재시도 및 실패가 지연됩니다.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort 전송 스택에서 사용하는 클라이언트 포트 재사용 정책을 나타냅니다.

참고 항목

직접 연결 모드에 대한 네트워킹 성능 팁도 참조하세요.

게이트웨이 연결 모드 사용자 지정

게이트웨이 모드는 CosmosClient 생성자에 전달된 CosmosClientOptions를 통해 사용자 지정할 수 있습니다. 사용자가 장단점을 이해하는 것이 편하고 꼭 필요한 경우가 아니면 수정하지 않는 것이 좋습니다.

구성 옵션 기본값 권장 세부 정보
GatewayModeMaxConnectionLimit 50 50 Azure Cosmos DB 서비스의 대상 서비스 엔드포인트에 허용되는 최대 동시 연결 수를 나타냅니다.
WebProxy null null 웹 요청에 사용되는 프록시 정보를 나타냅니다.

다음 단계

.NET SDK의 성능 팁에 대한 자세한 내용은 Azure Cosmos DB NET SDK v3에 대한 성능 팁을 참조하세요.