본문으로 이동
토스증권 Apache Kafka 데이터센터 이중화 구성 #2: 데이터 미러링
문서

토스증권 Apache Kafka 데이터센터 이중화 구성 #2: 데이터 미러링

송지수 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

토스증권은 데이터센터 간 Active-Active Kafka를 운영하면서, MirrorMaker2가 복제 토픽에 클러스터 접두사를 붙이는 점 때문에 사용자에게 동일한 토픽명을 제공하기 어려웠습니다. 이를 해결하기 위해 Kafka Connect Sink Connector 기반의 자체 미러링 도구를 만들고, 메시지 헤더의 원천 데이터센터 정보로 재복제 루프를 막았으며 DLQ와 재처리 시스템으로 실패 메시지를 관리했습니다. 수천 개 잡의 관측성을 위해 커스텀 메트릭 리포터로 지표를 Kafka에 전송하고 ClickHouse에 장기 저장했으며, 대규모 단일 Connect 클러스터는 여러 클러스터로 분리해 Task 배분과 운영 안정성을 개선했습니다. 그 결과 1,000개가 넘는 토픽의 미러링을 안정적으로 운영하고, 장기 추이 분석과 이상 징후 확인이 가능한 구조를 갖췄습니다.

  • 동일한 토픽명으로 양방향 복제할 때는 메시지 헤더에 원천 데이터센터 정보를 기록해 재복제 루프를 차단할 수 있습니다.
  • Kafka Connect의 DLQ에 실패 메시지와 토픽·파티션·오프셋·예외 정보를 보관하고, 별도 재처리 경로를 마련하면 복구 가능성을 높일 수 있습니다.
  • Prometheus의 보존 기간과 PromQL 제약이 분석에 맞지 않는다면, 커스텀 메트릭 리포터로 Kafka에 메트릭을 모은 뒤 ClickHouse에서 장기 분석하는 방식을 고려할 수 있습니다.
  • 토픽별 Connector를 운영하더라도 단일 Connect 클러스터에 작업이 과도하게 몰리면, 여러 클러스터로 나누고 Task를 조정해 운영 부담을 분산할 수 있습니다.

소개

토스증권은 현재 Active-Active 구성으로 Kafka를 운영하고 있는데요. 오늘은 Active-Active를 유지하기 위해 필요한 양방향 데이터 미러링에 대해 소개하려고 합니다.

비슷한 학습 자료

컨퍼런스 SLASH

다양한 장애 상황에도 사용자에게 매끄러운 서비스 경험을 제공하는 방법은 뭘까요? 더 견고하고 편리한 증권 서비스 구축을 위한 토스증권의 ‘Kafka IDC 이중화’ 과정을 소개합니다. 강병수 / 토스증권 Data Engineer 발표 자료 👉🏻 https://bit.ly/3CkW4mc 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #kafka #idc #dataengineer #토스증권 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전...

데브옵스 · 인프라 네트워크

문서 토스

Kafka Broker request log를 활용해서 서비스 간 의존성 파악하기

백엔드 데브옵스 · 인프라

문서 김용우

토스증권의 Realtime Data Team은 Active-Active 구성에서 Consumer Offset Sync를 어떻게 하고 있을까요?

백엔드 데이터베이스

문서 강병수

토스증권은 데이터센터 장애 상황에도 유저에게 정상적으로 서비스를 제공하기 위해 대부분의 시스템을 이중화했습니다. Kafka 이중화 구성에 대한 개요를 소개드려요.

백엔드 데이터베이스

문서 조승완

오늘은 데이터 효율성을 높이기 위해 도입한 ‘Iceberg’에 대해 이야기해 보려고 합니다. Iceberg의 기본적인 정보는 다른 곳에서도 쉽게 찾아볼 수 있지만, 저는 특히 유지보수와 운영 측면에 집중해서 이야기하려 합니다.

데이터베이스

문서 강병수

이번 글에서 토스증권 실시간 데이터 프로세싱에 활용 중인 ksqlDB에 대해서 소개하려고 합니다.

백엔드 데이터베이스