Apache Kafka 및 Kafka Connect 프레임워크

Apache Kafka 및 Kafka Connect 프레임워크 (The Apache Kafka and Kafka Connect framework)

이 문서는 Apache Kafka와 Kafka Connect 프레임워크의 기본 개념을 설명해요.

본문

Apache Kafka 소프트웨어는 메시지 큐나 엔터프라이즈 메시징 시스템과 유사하게 레코드 스트림을 쓰고 읽는 발행·구독 모델을 사용해요. Kafka는 프로세스가 메시지를 비동기적으로 읽고 쓸 수 있게 해줘요. 구독자는 발행자에 직접 연결될 필요가 없어요. 발행자는 구독자가 나중에 받도록 Kafka에 메시지를 큐잉할 수 있어요.

애플리케이션은 **토픽(topic)**에 메시지를 발행하고, 애플리케이션은 토픽을 구독해 그 메시지를 받아요.

Kafka Connect는 Kafka를 데이터베이스를 포함한 외부 시스템과 연결하는 프레임워크예요. Kafka Connect 클러스터는 Kafka 클러스터와 분리된 별도의 클러스터예요. Kafka Connect 클러스터는 커넥터(외부 시스템과의 읽기/쓰기를 지원하는 컴포넌트)의 실행과 확장을 지원해요.

Kafka Connect는 두 가지 유형의 커넥터와 함께 사용할 수 있어요:

  • 소스 커넥터 (Source connectors): 외부 시스템에서 Kafka 토픽으로 데이터를 가져와요.
  • 싱크 커넥터 (Sink connectors): Kafka 토픽에서 외부 시스템으로 데이터를 내보내요.

Snowflake Connector for Kafka는 Kafka 토픽에서 데이터를 읽어 Snowflake 테이블에 로드하는 싱크 커넥터예요.

Kafka Connect는 다음과 같은 일반적인 운영 문제를 처리해요:

  • 확장성 (Scalability): Kafka Connect는 클러스터에 더 많은 워커 노드를 추가해 수평 확장할 수 있어요.
  • 장애 허용 (Fault tolerance): 워커 노드가 실패하면 Kafka Connect는 자동으로 작업을 다른 사용 가능한 노드에 재분배해요.
  • 오프셋 관리 (Offset management): Kafka Connect는 어떤 레코드가 처리되었는지 추적해, 실패 시 데이터가 유실되거나 중복되지 않도록 보장해요.
  • 구성 관리 (Configuration management): 커넥터는 REST API를 통해 구성·관리할 수 있어서 데이터 파이프라인의 배포와 모니터링이 더 쉬워져요.

더 알아보기 (Learn more)

출처: The Apache Kafka and Kafka Connect framework