본문으로 이동
토스증권 Apache Kafka 데이터센터 이중화 구성 #1
문서

토스증권 Apache Kafka 데이터센터 이중화 구성 #1

강병수 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

데이터센터 장애에도 서비스를 유지하려면 Active-Active로 운영되는 서비스 서버뿐 아니라 MSA의 메시지 브로커인 Kafka도 이중화해야 했다. 토스증권은 Active-Active와 Stretched Cluster를 가용성, 성능, 운영 부담 기준으로 비교했고, 네트워크 단절 시 Split-brain과 요청 지연을 피하기 위해 독립된 두 Kafka 클러스터를 쓰는 Active-Active를 선택했다. 서비스 개발자의 추가 부담을 줄이도록 양쪽 클러스터의 토픽명을 같게 하고, Producer는 Split DNS로 지역 클러스터에 연결하며 Consumer는 GSLB로 한쪽 클러스터에서만 소비하게 구성했다. 이 구조의 운영 과제인 양방향 데이터 미러링과 Consumer Group Offset 동기화는 팀이 직접 개발했으며, 후속 글에서 구현을 다룬다.

  • Active-Active는 클러스터 간 데이터 미러링과 Consumer Group Offset 동기화가 핵심 운영 과제다.
  • Stretched Cluster는 운영이 단순하지만 데이터센터 간 네트워크 지연과 단절 시 Split-brain 위험을 검토해야 한다.
  • 토픽명을 양쪽 클러스터에서 동일하게 유지하면 서비스 개발자가 배포 데이터센터를 의식하지 않고 Kafka를 사용할 수 있다.
  • Producer는 Split DNS로 지역 클러스터에 쓰고, Consumer는 GSLB로 Active 클러스터 하나에서만 읽도록 분리할 수 있다.
  • 독립된 Kafka 클러스터 간에는 Offset 값이 다르므로 장애 전환을 위해 Offset Sync가 필요하다.

소개

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

비슷한 학습 자료

컨퍼런스 엔지니어링데이 2025

네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY에서 발표되었던 세션을 공개합니다. 1,2편의 경우 아쉽게도 사내용만 발표되어 3,4편 만 외부공개가 진행되는 점 양해 부탁드립니다. [발표 내용] Kafka 프로듀서 최적화하기 + 압축 기능 활용하기 [목차] 1. 배경: Kafka 자료 구조 - Kafka 자료 구조는 어떻게 생겼는가? 2. 프로듀서 동작 방식 및 최적화 방법 - 프로듀서와 브로커는 어떻게 메시지를 주고받는가? - linger.ms, batch.size, buffer.memory 사용법 3. 압축 동작 방식 및 최적화 방법 - (재)압축은 어떻게 이루어지는가? - compression.type, compression.{type}.level 사용법

백엔드 네트워크 로드맵 1개에 담김

컨퍼런스 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를 어떻게 하고 있을까요?

백엔드 데이터베이스

문서 송지수

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

백엔드 데이터베이스

문서 강병수

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

백엔드 데이터베이스