
Kafka Connect는 “소스 시스템(DB, 파일, SaaS 등) → Kafka” 또는 “Kafka → 싱크 시스템(검색엔진, 스토리지 등)”으로 데이터를 코드 최소화로 이동시키는 프레임워크입니다. 운영 관점에서는 Distributed 모드(클러스터 구성)로 띄우고, 커넥터는 REST API로 배포/관리하는 패턴이 표준에 가깝습니다. Source
Kafka Connect의 핵심 구성요소는 아래 4개로 이해하면 운영이 쉬워집니다.
Distributed 모드는 운영에 권장되며, 노드 장애 시 다른 워커로 작업이 재분배되고(리밸런싱), 상태/오프셋/설정이 Kafka 내부 토픽에 저장되어 안전합니다. Source
아키텍처 참고 이미지(블로그에 삽입용):
Kafka Connect 개념/구성 다이어그램
출처: https://daniel.arneam.com/blog/distributedarchitecture/2020-10-15-Kafka-Connect-Concepts/
REST 기반 관리(Connect/REST API 흐름 참고)
출처: https://developer.hpe.com/blog/kafka-connect-and-kafka-rest-api-on-mapr-streaming-just-became-a-whole-l/
결론: “운영환경 셋팅”이 목적이면 Distributed 모드를 기준으로 환경을 잡는 걸 추천합니다.
Kafka Connect는 JVM 프로세스이며, 메시지 크기/버퍼링/압축/커넥터 종류에 따라 CPU·메모리 요구량이 달라집니다. 컨테이너/Kubernetes 같은 환경에서도 잘 동작하며, Connect 자체가 스케일/재시작을 담당하지 않으므로(=오케스트레이터가 담당) 운영 플랫폼과 궁합이 좋습니다. Source
운영 체크리스트:
plugin.path로 통일Kafka Connect 플러그인은 보통 “커넥터 + 의존 JAR” 묶음 디렉터리 형태로 설치합니다. Connect는 플러그인을 plugin.path에 지정한 디렉터리들에서 발견하며, 플러그인 간 라이브러리 충돌을 피하기 위해 클래스로더 격리를 합니다. Source
예시:
# worker 설정에 포함
plugin.path=/usr/local/share/kafka/plugins
운영 팁:
Distributed 모드에서는 워커 설정 파일(예: connect-distributed.properties)이 핵심입니다. 실행 자체는 아래처럼 단순합니다. Source
bin/connect-distributed worker.properties
group.id같은 group.id를 가진 워커들이 한 Connect 클러스터를 이룹니다. Source
Distributed 워커는 아래 3개 내부 토픽에 설정/오프셋/상태를 저장합니다. 운영 안정성을 위해 복제 계수, 파티션 수, 컴팩션 정책이 중요합니다. Source
config.storage.topic (설정) — 파티션 1 고정offset.storage.topic (오프셋)status.storage.topic (상태)또한 같은 Connect 클러스터의 모든 워커는 위 3개 토픽 이름을 완전히 동일하게 가져야 합니다. Source
Connect가 시작 시 내부 토픽을 자동 생성할 수 있고(권장), 보안/정책상 막혀 있으면 수동 생성이 필요합니다. 문서에는 수동 생성 예시도 제공됩니다. Source
Standalone은 커넥터 설정 파일을 실행 시 인자로 넣지만, Distributed는 REST 요청으로 커넥터를 생성/관리합니다. Source
이 말은 곧 운영 자동화의 기본 단위가:
…로 잡힌다는 뜻입니다.
(블로그 이미지로 REST API 운영 흐름을 위의 REST 다이어그램 이미지로 곁들이면 이해가 빠릅니다.)
Standalone vs Distributed 모드 실행 예시(YouTube)
https://www.youtube.com/watch?v=OZ4Yne_rK3M
Kafka Connect 101(개념 빠른 요약)
https://www.youtube.com/watch?v=MjJABMOywFM