본문으로 이동
Kafka를 이용하는 메시지 플랫폼에서 장애를 겪으며 아키텍처를 개선한 이야기 #우아콘2024 #우아한형제들
컨퍼런스

Kafka를 이용하는 메시지 플랫폼에서 장애를 겪으며 아키텍처를 개선한 이야기 #우아콘2024 #우아한형제들

우아콘 2024 우아한형제들 · YouTube

원문 보기

AI 핵심 요약

배달의민족 메시지 플랫폼은 Kafka의 exactly-once를 사용하던 중 장애를 겪었고, 이를 제거하면서 API 요청 단위의 중복만 막도록 해시를 Redis에 저장하는 방식을 시도했습니다. 그러나 Redis 메모리 사용량이 예상보다 커지고 eviction에 따른 복제 부하 우려가 생겨, 토픽 메시지 수와 클러스터 용량을 조정하는 등 운영 방식을 보완했습니다. 이후 푸시 트래픽을 세 배 처리하라는 요구에 파티션을 늘리는 대신 FCM 호출의 지연을 제한하고, 발송을 비동기화해 재시도 경로와 트래픽 성격별 스레드 풀을 구성했습니다. 푸시 경로에서 라우터를 제거하고 배치 리스너로 커밋 횟수도 줄여, 파티션을 720개에서 100개로 줄인 상태에서 두 배 트래픽을 처리하고 실시간 메시지는 대부분 10초 이내에 발송했습니다.

  • Kafka의 exactly-once는 중복을 줄여 주지만, 트랜잭션 처리와 운영 부담까지 함께 고려해야 합니다.
  • 중복 방지 키의 범위를 정할 때는 플랫폼이 판단할 수 있는 중복과 클라이언트 요청의 의미를 구분해야 합니다.
  • Redis 메모리 용량은 데이터 크기뿐 아니라 키 관리 오버헤드와 eviction 시 복제 부하까지 고려해 산정해야 합니다.
  • 파티션을 늘리기 전에 외부 호출 지연, 동기 처리, 불필요한 중간 단계와 커밋 횟수 등 실제 병목을 찾아야 합니다.
  • 트래픽 성격에 따라 스레드 풀을 분리하고, 일시적 실패는 별도 재시도 경로로 처리하면 처리량과 실시간성을 함께 조정할 수 있습니다.

소개

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 메시지 플랫폼에서는 Kafka를 이용하여 대량의 메시지를 발송하고 있습니다. 두 번의 큰 장애를 겪고 새로운 요구사항을 수용하면서 아키텍처를 어떻게 개선해왔는지 소개합니다. ㅤ 👉 발표자 소개ㅤ 허창오, 서버 개발자 김동환, 서버 개발자

비슷한 학습 자료

컨퍼런스 우아콘 2024

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ Request-Reply 패턴의 실제 구현에 대해 심도있게 다룹니다. 기존 시스템의 한계점을 분석하고, Request-Reply 패턴을 적용하여 대규모 데이터 처리의 동시성을 최적화한 과정을 상세히 설명합니다. ㅤ 👉 발표자 소개ㅤ 임성호, 서버 개발자 권성준, 서버 개발자

백엔드 네트워크

컨퍼런스 우아콘 2024

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 배달의 민족은 전국 식당들의 메뉴와 주문 뿐만아니라 커머스 대형 셀러들과 연동하여 실시간 배달 서비스를 제공하고 있습니다. 제공하는 서비스에서 발생하는 하루 평균 200억 건의 데이터가 흘러가는 시스템을 안정적으로 구축하고 운영한 사례를 공유드립니다. 1부: 시스템 아키텍처 편 대용량 데이터 처리 시스템을 도입하는 과정에서의 고민과 적용한 기술 그리고 아키텍처를 설명합니다. 2부: 음식 배달, 물건 배달 서비스 구축 편 데이터 정합성과 재처리 복원 등을 고려한 가장 안정적이고 지속가능한 시스템 구조를 만들기 위한 고민과 해결사례를 공유합니다. ㅤ 👉 발표자 소개ㅤ 김민중, 서버 개발자 장재주, 서버 개발자 윤보민, 서버 개발자 김병화, 서버 개발자

백엔드 데이터베이스

컨퍼런스 우아콘 2024

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 1,300여 명에 이르는 전사 분석환경 사용자 분들이 제출하시는 하루 약 3만여 건의 쿼리를 장애 없이 비용 효율적이면서도 높은 성능으로 처리하기 위해 고민하고 개선했던 경험을 나누고자 합니다. Trino를 k8s 환경으로 이관하고, 부하 기반 오토스케일링과 멀티 클러스터 구성을 적용함으로써 탄력적으로 변모한 분석환경을 소개합니다. 또한, Iceberg 테이블 포맷 도입 및 테이블 튜닝으로 쿼리 성능을 극적으로 개선한 경험과 함께 주요 테이블들에 Kafka 커넥트 기반 준실시간화를 적용한 후기를 공유드립니다. ㅤ 👉 발표자 소개ㅤ 오창훈, 데이터 엔지니어

데이터베이스 데브옵스 · 인프라

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 이벤트 기반 아키텍처를 적용했던 경험담을 공유 드립니다. 이벤트 정의부터 구현 과정 그리고 이후로 더 해볼 수 있는 것들까지, 우리가 고민했던 부분들을 이야기해보려 합니다.ㅤ ㅤ 👉 발표자 소개 딜리버리서비스팀 임준수 시행착오를 겪으며 계속 고쳐나가려는 개발자입니다. 좋은 서비스를 만들기 위해 노력하고 있습니다. 배차시스템팀 송인태 다양한 도전과 경험을 기반으로 지속 가능한 서비스를 구축 및 제공하는 데 관심이 많은 개발자입니다. 👍 추천 대상 - Kafka를 사용해 봤거나 개념에 대해 아는 개발자 - 늘어가는 시스템 복잡도로 고민이 많은 개발자 🙋🏻‍♀️ 세션에 대해 궁금한 점이 있다면 dev_relations@woowahan.com 으로 문의주시기 바랍니다.

백엔드 데이터베이스

컨퍼런스 우아콘 2023

[WOOWACON2023 세션 다시보기] 👉 세션 설명 배달 도메인에서 배달/라이더 이벤트를 다루면서 경험한 스트림 처리 과정에 대해 이야기합니다. 스트림 처리를 위한 구조 설계부터, Kafka Streams를 실제 적용하기까지의 전반적인 과정을 소개합니다. 특히 운영 과정에서 마주한 이슈들과 그에 따른 전략 및 해결 과정 등을 중점적으로 공유합니다. 배치 처리의 한계로 스트림 처리 도입을 고려하고 계신 애플리케이션 개발자에게 이번 세션을 바칩니다.ㅤ ㅤ 👉 발표자 소개 딜리버리서비스팀 서오상 동료들과 개발 문화를 가꾸고, 문제를 정의하고 해결하는 과정을 즐깁니다. 소프트스킬도 유연한 개발자이고 싶습니다. 먼 훗날 어딘가 베이커리 카페를 열고 디지털 노마드처럼 코딩하는 게 꿈입니다. 딜리버리서비스팀 이신은 방탈출을 좋아하고, 언젠가 회사 탈출을 꿈꾸는 개발자입니다. 의견 충돌과 협상, 극적 타결까지 이르는 과정에서 희열을 느끼는 평화주의자입니다. 👍 추천 대상 스...

백엔드 데이터베이스

컨퍼런스 우아콘 2022

Kafka는 이제 비동기 통신 환경을 구성하는 대표적인 시스템입니다. 우아한형제들의 많은 서비스들 역시 Kafka를 사용하고 있는데요, 우아한형제들의 클라우드플랫폼개발팀은 더욱 신뢰성 있는 Kafka 환경을 구성하고자 노력하고 있습니다. 이번 발표에서는 클라우드 환경에서 Kafka를 도입하고 운영하면서 겪었던 문제 상황과 이에 대해 고민했던 내용을 공유합니다. [발표자 소개] 김대호 | 클라우드플랫폼개발팀 Kafka 에코시스템을 이용해 안정적이고 가치 있는 비동기 통신 환경을 구성하는 것에 관심이 있습니다. Kafka 엔지니어지만 기술에 매몰되지 않고 효과적으로 가치를 만들어 내기 위해 노력하고 있습니다.

데브옵스 · 인프라 클라우드