기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에서 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과 같은 종속성 주입 프레임워크를 사용하는 경우 서비스 클라이언트를 싱글톤 빈으로 구성합니다. 이렇게 하면 적절한 수명 주기 관리가 보장됩니다.