클라이언트 구성
1.x에서는 클라이언트 또는 클라이언트 빌더에서 ClientConfiguration 인스턴스를 설정하여 SDK 클라이언트 구성을 수정했습니다. 버전 2.x에서는 클라이언트 구성이 별도의 구성 클래스로 분할됩니다. 별도의 구성 클래스를 사용하면 비동기 클라이언트와 동기 클라이언트에 대해 서로 다른 HTTP 클라이언트를 구성할 수 있지만 여전히 동일한 클래스를 사용할 수 있습니다. ClientOverrideConfiguration
예 버전 1.x의 클라이언트 구성
AmazonDynamoDBClientBuilder.standard() .withClientConfiguration(clientConfiguration) .build()
예 버전 2.x의 동기식 클라이언트 구성
ProxyConfiguration.Builder proxyConfig = ProxyConfiguration.builder(); ApacheHttpClient.Builder httpClientBuilder = ApacheHttpClient.builder() .proxyConfiguration(proxyConfig.build()); ClientOverrideConfiguration.Builder overrideConfig = ClientOverrideConfiguration.builder(); DynamoDbClient client = DynamoDbClient.builder() .httpClientBuilder(httpClientBuilder) .overrideConfiguration(overrideConfig.build()) .build();
예 버전 2.x의 동기식 클라이언트 구성
NettyNioAsyncHttpClient.Builder httpClientBuilder = NettyNioAsyncHttpClient.builder(); ClientOverrideConfiguration.Builder overrideConfig = ClientOverrideConfiguration.builder(); ClientAsyncConfiguration.Builder asyncConfig = ClientAsyncConfiguration.builder(); DynamoDbAsyncClient client = DynamoDbAsyncClient.builder() .httpClientBuilder(httpClientBuilder) .overrideConfiguration(overrideConfig.build()) .asyncConfiguration(asyncConfig.build()) .build();
HTTP 클라이언트
주목할 만한 변경 사항
-
버전 2.x에서는
clientBuilder.httpClientBuilder를 사용하여 구현을 지정하여 런타임에 사용할 HTTP 클라이언트를 변경할 수 있습니다. -
clientBuilder.httpClient를 사용하여 HTTP 클라이언트를 서비스 클라이언트 빌더에 전달하면 서비스 클라이언트가 닫힐 때 기본적으로 HTTP 클라이언트는 닫히지 않습니다. 이렇게 하면 서비스 클라이언트 간에 HTTP 클라이언트를 공유할 수 있습니다. -
비동기식 HTTP 클라이언트는 이제 비차단 I/O를 사용합니다.
-
이제 일부 작업에서는 성능 향상을 위해 HTTP/2를 사용합니다.
설정 변경
| 설정 | 1.x | 2.x 동기식, Apache | 2.x 비동기식, Netty |
|---|---|---|---|
|
|
|
|
| 최대 연결 수 |
|
|
|
| 연결 제한 시간 |
|
|
|
| 소켓 제한 시간 |
|
|
|
| 연결 시 TTL |
|
|
|
| 연결 시 최대 유휴 |
|
|
|
| 비활성화 후 유효성 확인 |
|
비지원(요청 기능 |
비지원(요청 기능 |
| 로컬 주소 |
|
|
지원되지 않음 |
| Expect-continue 사용 |
|
|
비지원(요청 기능 |
| 연결 리퍼 |
|
|
|
|
|
|
HTTP 클라이언트 프록시
| 설정 | 1.x | 2.x 동기식, Apache | 2.x 비동기식, Netty |
|---|---|---|---|
|
|
|
|
| 프록시 호스트 |
|
|
|
| 프록시 포트 |
|
프록시 포트는 |
|
| 프록시 사용자 이름 |
|
|
|
| 프록시 비밀번호 |
|
|
|
| 프록시 도메인 |
|
|
비지원(요청 기능 |
| 프록시 워크스테이션 |
|
|
비지원(요청 기능 |
| 프록시 인증 메서드 |
|
비지원(요청 기능 |
|
| 선제적 기본 프록시 인증 |
|
|
비지원(요청 기능 |
| 비프록시 호스트 |
|
|
|
| 소켓 프록시 사용 해제 |
|
비지원(요청 기능 |
비지원(요청 기능 |
|
|
|
클라이언트 재정의
| 설정 | 1.x | 2.x |
|---|---|---|
|
|
|
| 사용자 에이전트 접두사 |
|
|
| 사용자 에이전트 접미사 |
|
|
| Signer |
|
|
| 추가 헤더 |
|
|
| 요청 제한 시간 |
|
|
| 클라이언트 실행 제한 시간 |
|
|
| Gzip 사용 |
|
비지원(요청 기능 |
| 소켓 버퍼 크기 힌트 |
|
비지원(요청 기능 |
| 캐시 응답 메타데이터 |
|
비지원(요청 기능 |
| 응답 메타데이터 캐시 크기 |
|
비지원(요청 기능 |
| DNS 해석기 |
|
비지원(요청 기능 |
| TCP 킵얼라이브 |
|
이제 이 옵션은 HTTP 클라이언트 구성에 포함됩니다.
|
| 보안 임의 |
|
비지원(요청 기능 |
|
|
클라이언트 재정의 재시도
| 설정 | 1.x | 2.x |
|---|---|---|
|
|
|
| 최대 오류 재시도 |
|
|
| 스로틀링 재시도 사용 |
|
지원되지 않음 |
| 스로틀링 전 최대 연속 재시도 횟수 |
|
지원되지 않음 |
|
|
비동기 클라이언트
| 설정 | 1.x | 2.x |
|---|---|---|
|
||
| 실행자 |
|
|
|
기타 클라이언트 변경 사항
1.x의 다음 ClientConfiguration 옵션은 SDK의 2.x에서 변경되었으며 동등한 직접 기능이 없습니다.
| 설정 | 1.x | 2.x 동등 |
|---|---|---|
| 프로토콜 |
|
프로토콜 설정은 기본적으로 HTTPS입니다. 설정을 수정하려면 클라이언트 빌더에서 HTTP 엔드포인트를 설정하는 프로토콜을 지정합니다.
|