Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그

6개월 만에 연간 수십조를 처리하는 DB CDC 복제 도구 무중단/무장애 교체하기

NAVER D2 faviconNAVER D2·Architecture·
KubernetesMySQLKafkaApache FlinkOracle
2025년 11월 18일12

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

NAVER D2가 mig-data를 대체하는 ergate 프로젝트로 단방향 DB CDC를 Flink+Spring으로 재구현해 1초 내 복제 보장을 목표로 했으며, 초기 처리 시간이 200ms에서 캐싱과 최적화로 40ms까지 단축되었습니다. 또한 10배 이상 QPS 향상을 목표로 성능 개선에 집중했습니다.

구현 방법

  • 아키텍처: Flink 2.0.0(LTS), Kubernetes 세션 모드, HA 구성, nbase-cdc와 Kafka 연동, Java 17/Kotlin 1.9 사용
  • 핵심 구현: DDL 의존성 제거를 위한 칼럼 캐싱, 스키마 정보 캐시 및 PreparedStatement 재사용, findckey/columnreplace를 enum 기반으로 간소화
  • 검증/복구: 지연 검증 및 DLQ를 위한 verifier, 상태 DB 기록, 자동/수동 복구 흐름, Oracle read-only 검증, 서킷 브레이커 도입
  • 성능/운영: DynamicBatchSize를 통한 JdbcSink 확장, Async 검증, 네트워크 버퍼 비활성화

주요 결과

  • 1건당 처리 시간 200ms → 40ms로 단축
  • 1초 내 복제 보장을 위한 시스템 설계 강조
  • 운영 편의성 및 확장성 향상 목표 달성

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
No Image
79%

매번 다 퍼올 필요 없잖아? 당근의 MongoDB CDC 구축기

당근 favicon당근·2025년 12월 08일
Flink SQL 도입기 섬네일
75%

Flink SQL 도입기

하이퍼커넥트 favicon하이퍼커넥트·2025년 02월 18일
No Image
72%

장시간 비동기 작업, Kafka 대신 RDB 기반 Task Queue로 해결하기

우아한형제들 favicon우아한형제들·2025년 11월 25일