관리 UI
Kafbat UI (구 kafka-ui) · Redpanda Console — 토픽 · 컨슈머 그룹 · 랙 · 메시지 내용을 브라우저로 본다. 온프렘이면 하나는 꼭 띄워 둔다.
전부 처음부터 얹는 것이 아니다 — 같은 코드를 세 번째 쓰게 될 때가 각 도구의 도입 시점이다
Kafka ConnectDebezium스키마 레지스트리Schema RegistryKafka StreamsMirrorMaker 2시작은 브로커 + 클라이언트 라이브러리뿐이다. 나머지는 전부 필요가 생겼을 때 얹는 별도 컴포넌트다 — 각각 “언제”를 아는 것이 이 장의 목적이다.
토픽을 읽어 DB에 넣는 컨슈머를 짜는 것은 어렵지 않다. 문제는 그런 코드가 셋, 넷 반복될 때다 — 재시도 · 오프셋 관리 · 스케일 · 배포를 매번 다시 짜게 된다.
Connect는 그 반복을 설정으로 바꾼다. 커넥터(플러그인) + JSON 설정이면 소스(밖→Kafka)·싱크(Kafka→밖) 파이프가 돌고, 오프셋 관리·재시도·병렬화는 프레임워크 몫이다.
KafkaConnect·KafkaConnector CRD로 k8s 배포까지 맡아 준다 (9장)7장의 결론 이어서 — 팀·서비스가 늘어 “관용적 JSON + 조심”으로 안 되는 시점이 온다. 레지스트리는 토픽별 스키마(Avro · Protobuf · JSON Schema)를 버전으로 관리하고, 호환성을 등록 시점에 검사한다 — 깨지는 변경이 런타임이 아니라 배포 전에 걸린다.
“토픽을 읽어 → 집계·조인·윈도우 계산 → 다른 토픽에 쓴다”가 필요해지면 —
| 도구 | 형태 | 어울리는 곳 |
|---|---|---|
| Kafka Streams | 자바 라이브러리 — 앱에 내장, 별도 클러스터 없음 | 서비스 옆의 중간 규모 집계 · exactly-once가 필요한 토픽→토픽 처리 (6장) |
| Flink | 별도 클러스터 (k8s 오퍼레이터 있음) | 대규모 · 다(多)소스 · SQL로 짜는 본격 스트림 처리 |
단순 필터·변환이면 그냥 컨슈머로 충분하다 — 상태(집계·조인)가 생길 때가 도입 시점이다. 이 덱에서는 여기까지만 다룬다.
관리 UI
Kafbat UI (구 kafka-ui) · Redpanda Console — 토픽 · 컨슈머 그룹 · 랙 · 메시지 내용을 브라우저로 본다. 온프렘이면 하나는 꼭 띄워 둔다.
CLI
배포판 동봉 kafka-topics.sh · kafka-consumer-groups.sh(랙 확인의 기본 도구),
그리고 만능 단검 kcat — 토픽에 찔러 넣고 빼 보는 데 제일 빠르다.
지표 수집
Strimzi 내장 Prometheus 지표 + kafka-exporter(랙) → Grafana. 구성은 10장에서.
클러스터 간 복제
MirrorMaker 2 — DR · 멀티 사이트가 요구되면 그때 꺼낼 이름. 이 덱 범위 밖이다(0장).
kafka-consumer-groups.sh · kcat은 미리 갖춰 둔다