기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Kinesis 생산자 라이브러리(KPL)를 사용하여 생산자 개발
Amazon Kinesis Data Streams 생산자는 Kinesis 데이터 스트림에 사용자 데이터 레코드를 입력하는(데이터 수집이라고도 함) 애플리케이션입니다. Kinesis 생산자 라이브러리(KPL)는 생산자 애플리케이션 개발을 간소화하여 개발자가 Kinesis 데이터 스트림에 대한 높은 쓰기 처리량을 달성할 수 있도록 합니다.
Amazon을 KPL 사용하여를 모니터링할 수 있습니다 CloudWatch. 자세한 내용은 Amazon을 사용하여 Kinesis Producer Library 모니터링 CloudWatch 단원을 참조하십시오.
주제
참고
최신 KPL 버전으로 업그레이드하는 것이 좋습니다. KPL는 최신 종속성 및 보안 패치, 버그 수정 및 이전 버전과 호환되는 새 기능이 포함된 최신 릴리스로 정기적으로 업데이트됩니다. 자세한 내용은 https://github.com/awslabs/amazon-kinesis-producer/releases/
의 역할 검토 KPL
KPL는 Kinesis 데이터 스트림에 쓰는 데 도움이 되는 easy-to-use고도로 구성 가능한 라이브러리입니다. 생산자 애플리케이션 코드와 Kinesis Data Streams API 작업 간의 중개자 역할을 합니다. KPL는 다음과 같은 기본 작업을 수행합니다.
-
자동 및 구성 가능한 재시도 메커니즘을 사용하여 하나 이상의 Kinesis 데이터 스트림에 쓰기
-
레코드를 수집하고
PutRecords
를 사용하여 요청당 여러 샤드에 여러 레코드 쓰기 -
사용자 레코드를 집계하여 페이로드 크기 증가 및 처리량 향상
-
Kinesis Client Library(KCL)와 원활하게 통합되어 소비자의 배치 레코드를 집계 해제합니다.
-
생산자 성능에 대한 가시성을 제공하기 위해 사용자를 대신하여 Amazon CloudWatch 지표를 제출합니다.
KPL는에서 사용할 수 API 있는 Kinesis Data Streams와 다릅니다AWS SDKs
사용의 이점 실현 KPL
다음 목록은 Kinesis Data Streams 생산자 개발을 KPL 위해를 사용할 때 얻을 수 있는 몇 가지 주요 이점을 보여줍니다.
동기 또는 비동기 사용 사례에서 KPL을 사용할 수 있습니다. 특별히 동기 동작을 사용할 이유가 없다면 고성능 비동기 인터페이스를 사용하는 것이 좋습니다. 두 사용 사례와 예제 코드에 대한 자세한 내용은 를 사용하여 Kinesis 데이터 스트림에 쓰기 KPL를 참조하십시오.
- 성능 이점
-
KPL은 고성능 생산자를 구축하는 데 도움이 됩니다. Amazon EC2 인스턴스가 수백 또는 수천 개의 저전력 디바이스에서 100바이트 이벤트를 수집하고 Kinesis 데이터 스트림에 레코드를 기록하는 프록시 역할을 하는 상황을 생각해 보세요. 이러한 EC2 인스턴스는 각각 초당 수천 개의 이벤트를 데이터 스트림에 기록해야 합니다. 필요한 처리량을 달성하기 위해 생산자는 소비자 측에서 이루어지는 레코드 분해 및 재시도 로직 외에도 일괄 처리나 멀티스레딩과 같은 복잡한 로직을 구현해야 합니다. KPL는 이 모든 작업을 수행합니다.
- 소비자 측 사용 편의성
-
Java에서 KCL을 사용하는 소비자 측 개발자의 경우 추가 작업 없이 KPL이 통합됩니다. 가 여러 KPL 사용자 레코드로 구성된 집계된 Kinesis Data Streams 레코드를 KCL 검색하면 사용자에게 반환하기 전에 자동으로를 호출KPL하여 개별 사용자 레코드를 추출합니다.
를 사용하지 KCL 않고 대신 API 작업을
GetRecords
직접 사용하는 소비자 측 개발자의 경우 KPL Java 라이브러리를 사용하여 개별 사용자 레코드를 추출한 후 사용자에게 반환할 수 있습니다. - 생산자 모니터링
-
Amazon 및를 사용하여 Kinesis Data Streams 생산자를 수집, 모니터링 CloudWatch 및 분석할 수 있습니다KPL. 는 사용자를 대신하여 CloudWatch 에 처리량, 오류 및 기타 지표를 KPL 내보내고 스트림, 샤드 또는 생산자 수준에서 모니터링하도록 구성할 수 있습니다.
- 비동기 아키텍처
-
KPL는 레코드를 Kinesis Data Streams로 보내기 전에 버퍼링할 수 있으므로 호출자 애플리케이션이 실행 시간을 계속하기 전에 레코드가 서버에 도착했다는 확인을 차단하고 기다리도록 하지 않습니다. KPL에 레코드를 넣는 호출은 언제나 즉시 반환되며 전송할 레코드 또는 서버에서 수신할 응답을 기다리지 않습니다. 대신 나중에 Kinesis Data Streams로 레코드를 보낸 결과를 수신하는
Future
객체가 생성됩니다. 이는의 비동기 클라이언트와 동일한 동작입니다 AWS SDK.
를 사용하지 않아야 하는 경우 이해 KPL
KPL은 라이브러리 내에 RecordMaxBufferedTime
까지 추가 처리 지연을 일으킬 수 있습니다(사용자 구성 가능). RecordMaxBufferedTime
값이 클수록 패킹 효율이 높아지고 성능이 향상됩니다. 이 추가 지연을 허용할 수 없는 애플리케이션은를 AWS SDK 직접 사용해야 할 수 있습니다. Kinesis Data Streams에서를 AWS SDK 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요AWS SDK for Java와 Amazon Kinesis Data Streams API를 사용하여 생산자 개발. RecordMaxBufferedTime
및 그 밖에 사용자가 구성할 수 있는 KPL의 속성에 대한 자세한 내용은 Kinesis Producer Library 구성 단원을 참조하십시오.