에서 singleton 서비스 클라이언트 인스턴스 사용 AWS SDK for Java 2.x - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에서 singleton 서비스 클라이언트 인스턴스 사용 AWS SDK for Java 2.x

의 서비스 클라이언트 AWS SDK for Java 2.x 는 스레드 세이프입니다. 각 서비스 클라이언트의 인스턴스 하나를 생성하고 애플리케이션 전체에서 재사용할 수 있습니다. 이 접근 방식은 성능을 개선하고 리소스를 보다 효율적으로 관리합니다.

Singleton 서비스 클라이언트의 이점

연결 풀링

서비스 클라이언트는 내부 HTTP 연결 풀을 유지합니다. 이러한 풀을 생성하고 삭제하는 데는 비용이 많이 듭니다. 클라이언트를 재사용하면 이러한 풀이 요청 간에 효율적으로 공유됩니다.

초기화 오버헤드 감소

클라이언트를 생성하려면 구성을 로드하고, 자격 증명을 설정하고, 내부 구성 요소를 초기화해야 합니다. Singleton 인스턴스는 이러한 오버헤드를 제거합니다.

리소스 사용률 향상

Singleton 클라이언트는 많은 클라이언트 인스턴스를 생성할 때 발생할 수 있는 리소스 소진을 방지합니다.

singleton 서비스 클라이언트 생성 및 사용

다음 예제에서는 singleton 서비스 클라이언트를 생성하고 사용하는 방법을 보여줍니다.

// Create one instance and use it throughout the application. public class ServiceClientSource { private static final S3Client s3Client = S3Client.create(); public static S3Client getS3Client() { return s3Client; } }

각 작업에 대해 새 클라이언트를 생성하지 마십시오.

// This approach creates unnecessary overhead. public void badExample() { try (S3Client s3 = S3Client.create()) { s3.listBuckets(); } }

중요 고려 사항

  • 서비스 클라이언트는 스레드 세이프입니다. 여러 스레드에서 안전하게 공유할 수 있습니다.

  • 애플리케이션이 종료되거나 클라이언트가 더 이상 필요하지 않은 경우에만 클라이언트를 닫습니다. 애플리케이션 수준에서 client.close() 리소스를 사용하거나 사용해 try-with-resources.

  • 리전 또는 자격 증명과 같은 다른 구성이 필요한 경우 각 구성에 대해 별도의 singleton 인스턴스를 생성합니다.

Spring과 같은 종속성 주입 프레임워크를 사용하는 경우 서비스 클라이언트를 싱글톤 빈으로 구성합니다. 이렇게 하면 적절한 수명 주기 관리가 보장됩니다.