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에 대한 성능 팁을 참조하세요.
- 기존 데이터베이스 클러스터의 vCore 및 서버의 수만 알고 있는 경우 vCore 또는 vCPU를 사용하여 요청 단위 예측을 참조하세요
- 현재 데이터베이스 워크로드에 대한 일반적인 요청 비율을 알고 있는 경우 Azure Cosmos DB 용량 계획 도구를 사용하여 요청 단위 예측에 대해 읽어보세요.