본문으로 이동
Kafka 기반 대규모 데이터 동시성 최적화: Request-Reply 패턴 활용 사례 #우아콘2024 #우아한형제들
컨퍼런스

Kafka 기반 대규모 데이터 동시성 최적화: Request-Reply 패턴 활용 사례 #우아콘2024 #우아한형제들

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

원문 보기

AI 핵심 요약

주문 유입량 조절 기능은 여러 트리거가 수십만 개의 가게 데이터를 동시에 바꾸면서 DB 데드락·락 타임아웃이 발생했고, 변경 순서와 성공 여부도 보장해야 했습니다. 발표자들은 같은 키의 메시지를 같은 Kafka 파티션에서 순서대로 처리하도록 하고, Spring Kafka의 ReplyingKafkaTemplate을 적용해 요청을 발행한 뒤 처리 결과를 응답으로 받는 구조를 만들었습니다. 요청·응답은 도메인별 단일 토픽으로 구성하고 correlation ID로 응답을 원래 요청에 연결했으며, 공유 응답 토픽에서는 인스턴스별 consumer group ID와 shared reply topic 설정을 활용했습니다. 이 방식은 동시성 제어와 순서 보장, 처리 결과 확인을 함께 다루는 대안이지만, 분산 락보다 아키텍처가 복잡하므로 요구사항에 맞춰 선택해야 한다는 점을 보여줬습니다.

  • 같은 키를 가진 메시지가 같은 Kafka 파티션으로 가도록 설계하면 파티션 내 처리 순서를 활용할 수 있습니다.
  • Spring Kafka의 ReplyingKafkaTemplate은 요청 전송과 응답 수신을 함께 처리하며, correlation ID로 요청과 응답을 연결합니다.
  • 도메인별 단일 요청·응답 토픽은 공통 코드를 재사용하고 처리량 증가에 대응하기 쉽지만, 토픽을 공유하는 구조에 맞는 설정이 필요합니다.
  • 응답 토픽을 여러 인스턴스가 공유할 때는 인스턴스별 고유 consumer group ID와 shared reply topic 설정을 검토해야 합니다.
  • Kafka 기반 비동기 구조는 분산 락보다 구성 요소와 코드가 복잡하므로, 순서 보장과 확장성, 결과 회신이 실제 요구사항인지 먼저 확인해야 합니다.

소개

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

비슷한 학습 자료

컨퍼런스 우아콘 2024

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

백엔드 데이터베이스

컨퍼런스 우아콘 2024

[WOOWACON2024 세션 다시보기] 👉 세션 설명 ㅤ 하루 150만 건의 배달을 어떻게 잘 배차할 수 있을까? 분할 정복을 넘어선 지역 최적화의 경험을 바탕으로, 데이터와 머신러닝을 활용해 서비스와 도메인을 개선한 사례를 공유합니다. ㅤ 👉 발표자 소개ㅤ 윤대영, 서버 개발자 박영수, 데이터 과학자

알고리즘 · 자료구조 딥러닝 · 머신러닝

컨퍼런스 우아콘 2024

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

백엔드 데이터베이스

컨퍼런스 우아콘 2023

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

백엔드 데이터베이스

컨퍼런스 우아콘 2023

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

백엔드 데이터베이스

컨퍼런스 우아콘 2022

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

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