Kinesis Client Library(KCL)를 사용하여 Amazon Keyspaces 스트림 처리 - Amazon Keyspaces(Apache Cassandra용)

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

Kinesis Client Library(KCL)를 사용하여 Amazon Keyspaces 스트림 처리

이 주제에서는 Kinesis Client Library(KCL)를 사용하여 Amazon Keyspaces 변경 데이터 캡처(CDC) 스트림의 데이터를 사용하고 처리하는 방법을 설명합니다.

Amazon Keyspaces Streams API로 직접 작업하는 대신 Kinesis Client Library(KCL)로 작업하면 다음과 같은 많은 이점이 있습니다.

  • 샤드 계보 추적 및 반복자 처리 기능이 내장되어 있습니다.

  • 작업자 간 자동 로드 밸런싱.

  • 내결함성 및 작업자 장애 복구.

  • 처리 진행 상황을 추적하기 위한 체크포인트입니다.

  • 스트림 용량 변경에 맞게 조정.

  • CDC 레코드 처리를 위한 간소화된 분산 컴퓨팅.

다음 섹션에서는 Kinesis Client Library(KCL)를 사용하여 스트림을 처리하는 이유와 방법을 간략하게 설명하고 KCL을 사용하여 Amazon Keyspaces CDC 스트림을 처리하는 예를 제공합니다.

요금에 대한 자세한 내용은 Amazon Keyspaces(Apache Cassandra용) 요금을 참조하세요.

Kinesis Client Library란?

Kinesis Client Library(KCL)는 스트림에서 데이터를 사용하고 처리하는 프로세스를 간소화하도록 설계된 독립형 Java 소프트웨어 라이브러리입니다. KCL은 분산 컴퓨팅과 관련된 많은 복잡한 작업을 처리하므로 스트림 데이터를 처리할 때 비즈니스 로직을 구현하는 데 집중할 수 있습니다. KCL은 여러 작업자 간의 로드 밸런싱, 작업자 실패에 대한 응답, 처리된 레코드 검사, 스트림의 샤드 수 변경에 대한 응답과 같은 활동을 관리합니다.

Amazon Keyspaces CDC 스트림을 처리하려면 스트림 샤드 및 스트림 레코드 작업을 위해 KCL에 있는 설계 패턴을 사용할 수 있습니다. KCL은 하위 수준의 Kinesis Data Streams API에 유용한 추상화를 제공하여 코딩을 단순화합니다. KCL에 대한 자세한 내용은 Amazon Kinesis Data Streams 개발자 안내서의 KCL로 소비자 개발을 참조하세요.

KCL을 사용하여 애플리케이션을 작성하려면 Amazon Keyspaces Streams Kinesis 어댑터를 사용합니다. Kinesis 어댑터는 Kinesis Data Streams 인터페이스를 구현하므로 Amazon Keyspaces 스트림에서 레코드를 사용하고 처리하는 데 KCL을 사용할 수 있습니다. Amazon Keyspaces 스트림 Kinesis 어댑터를 설정하고 설치하는 방법에 대한 지침은 GitHub 리포지토리를 참조하세요.

다음 다이어그램은 이러한 라이브러리가 서로 상호 작용하는 방식을 보여줍니다.

Amazon Keyspaces CDC 스트림 레코드를 처리할 때 클라이언트 애플리케이션과 Kinesis Data Streams, KCL, Amazon Keyspaces Streams Kinesis Adapter 및 Amazon Keyspaces APIs 간의 상호 작용.

KCL은 기본 라이브러리의 최신 버전, 보안 개선 및 버그 수정을 통합하도록 자주 업데이트됩니다. 알려진 문제를 방지하고 모든 최신 개선 사항을 활용하려면 최신 버전의 KCL을 사용하는 것이 좋습니다. 최신 KCL 버전을 찾으려면 KCL GitHub 리포지토리를 참조하세요.

KCL 개념

KCL을 사용하여 소비자 애플리케이션을 구현하기 전에 다음 개념을 이해해야 합니다.

KCL 소비자 애플리케이션

KCL 소비자 애플리케이션은 Amazon Keyspaces CDC 스트림의 데이터를 처리하는 프로그램입니다. KCL은 소비자 애플리케이션 코드와 Amazon Keyspaces CDC 스트림 간의 중개자 역할을 합니다.

작업자

작업자는 Amazon Keyspaces CDC 스트림의 데이터를 처리하는 KCL 소비자 애플리케이션의 실행 단위입니다. 애플리케이션은 여러 인스턴스에 분산된 여러 작업자를 실행할 수 있습니다.

레코드 프로세서

레코드 프로세서는 Amazon Keyspaces CDC 스트림의 샤드에서 데이터를 처리하는 애플리케이션의 로직입니다. 레코드 프로세서는 작업자가 관리하는 각 샤드에 대해 인스턴스화됩니다.

임대

임대는 샤드에 대한 처리 책임을 나타냅니다. 작업자는 리스를 사용하여 어떤 작업자가 어떤 샤드를 처리하는지 조정합니다. KCL은 Amazon Keyspaces의 테이블에 임대 데이터를 저장합니다.

체크포인트

체크포인트는 레코드 프로세서가 레코드를 성공적으로 처리한 샤드의 위치에 대한 레코드입니다. 체크포인트를 사용하면 작업자가 실패할 경우 애플리케이션이 중단한 위치에서 처리를 재개할 수 있습니다.

Amazon Keyspaces Kinesis 어댑터를 사용하면 API 호출이 Amazon Keyspaces 스트림 엔드포인트로 원활하게 전달되어 KCL 인터페이스에 대한 개발을 시작할 수 있습니다. 사용 가능한 엔드포인트 목록은 Amazon Keyspaces에서 CDC 스트림 엔드포인트에 액세스하는 방법 섹션을 참조하세요.

애플리케이션이 시작되면 KCL을 호출하여 작업자를 인스턴스화합니다. 작업자에게 스트림 설명자 및 AWS 자격 증명, 제공한 레코드 프로세서 클래스의 이름 등 애플리케이션에 대한 구성 정보를 제공해야 합니다. 레코드 프로세서에서 코드를 실행하면 작업자는 다음 작업을 수행합니다.

  • 스트림에 연결합니다

  • 스트림 내 샤드를 열거합니다.

  • 샤드 연결을 다른 작업자(있는 경우)와 조정합니다.

  • 관리하는 모든 샤드의 레코드 프로세서를 인스턴스화합니다

  • 스트림에서 레코드를 가져옵니다.

  • 해당하는 레코드 프로세서로 레코드를 푸시합니다

  • 처리된 레코드에 대해 체크포인트를 수행합니다

  • 작업자 인스턴스 수가 변경되면 샤드-작업자 연결을 조정합니다

  • 샤드가 분할되면 샤드-작업자 연결을 조정합니다.