DAX 클러스터는 다양한 DAX SDK를 사용하여 액세스할 수 있는 인스턴스 기반 클러스터입니다. 각 SDK는 특정 애플리케이션 요구 사항을 충족하도록 requestTimeout 및 connections와 같은 구성 가능한 옵션을 개발자에게 제공합니다.
DAX 클라이언트를 구성할 때 중요한 고려 사항은 클라이언트 애플리케이션의 규모, 특히 DAX 서버 인스턴스 수 대비 클라이언트 인스턴스 수(최대 11개)입니다. 대규모 클라이언트 인스턴스 플릿은 DAX 서버 인스턴스에 대한 수많은 연결을 생성하여 과부하를 일으킬 수 있습니다. 이 가이드에서는 DAX 클라이언트 구성의 모범 사례를 간략하게 설명합니다.
모범 사례
클라이언트 인스턴스 - 요청 전반에서 인스턴스를 재사용할 수 있도록 싱글톤 클라이언트 인스턴스를 구현합니다. 구현 세부 정보는 4단계: 샘플 애플리케이션 실행 단원을 참조하세요.
요청 제한 시간 - 애플리케이션은 업스트림 시스템의 지연 시간을 최소화하기 위해 요청 제한 시간을 낮춰야 하는 경우가 많지만 제한 시간을 너무 낮게 설정하면 문제가 발생할 수 있습니다. 제한 시간이 짧으면 DAX 서버에서 일시적으로 지연 시간이 급증할 때 서버 인스턴스에 자주 재연결될 수 있습니다. 시간 초과가 발생하면 DAX 클라이언트는 기존 서버 노드 연결을 종료하고 새 연결을 설정합니다. 연결 설정은 리소스 집약적이므로 연속으로 여러 차례 연결하면 DAX 서버에 과부하가 걸릴 수 있습니다. 다음과 같이 하는 것이 좋습니다:
기본 요청 제한 시간 설정 유지.
제한 시간이 더 짧아야 하는 경우 더 낮은 제한 시간 값을 갖는 별도의 애플리케이션 스레드를 구현하고 지수 백오프가 있는 재시도 메커니즘을 포함합니다.
연결 제한 시간 - 대부분의 애플리케이션에서는 기본 연결 제한 시간 설정을 유지하는 것이 좋습니다.
동시 연결 - JavaV2와 같은 특정 SDK를 사용하면 DAX 서버에 대한 동시 연결을 조정할 수 있습니다. 주요 고려 사항:
DAX 서버 인스턴스는 최대 40,000개의 동시 연결을 처리할 수 있습니다.
기본 설정은 대부분의 사용 사례에 적합합니다.
대규모 클라이언트 인스턴스와 높은 동시 연결이 결합되면 서버에 과부하가 걸릴 수 있습니다.
동시 연결 값이 낮으면 서버 과부하 위험이 줄어듭니다.
성능 계산 예:
요청 지연 시간이 1ms라고 가정하면 각 연결은 이론적으로 초당 1,000개의 요청을 처리할 수 있습니다.
3노드 클러스터의 경우 모든 노드에 연결하는 단일 클라이언트 인스턴스가 초당 3,000개의 요청을 처리할 수 있습니다.
10개의 연결을 통해 클라이언트는 초당 약 30,000개의 요청을 처리할 수 있습니다.
권장 사항 - 더 낮은 동시 연결 설정으로 시작하고 예상 프로덕션 워크로드 패턴을 사용한 성능 테스트를 통해 검증합니다.