[설계 질문] Exactly-once 보장을 위한 설정과 전략

2025. 5. 27. 22:19·면접 준비
728x90
반응형
SMALL

메시지 순서 보장뿐 아니라 중복 없이 정확히 한 번만 처리되는(Exactly-once) 이벤트 시스템을 구성하기 위해 다음과 같은 설정과 전략을 적용했습니다.먼저 프로듀서 측에서는 acks=all, enable.idempotence=true, transactional.id를 설정해 중복 전송 방지와 트랜잭션 컨텍스트를 유지했습니다.컨슈머 측에서는 enable.auto.commit=false로 수동 커밋을 적용하고, isolation.level=read_committed로 트랜잭션이 커밋된 메시지만 읽도록 설정했습니다.또한 메시지를 읽은 후 DB 작업과 offset 커밋을 동일 트랜잭션 내에서 처리하여, 중간에 실패가 발생해도 중복 소비나 손실이 없도록 구성했습니다.외부 시스템(DB 등)과의 종단 간 정합성을 유지하기 위해 Outbox Pattern도 병행하여, Kafka 메시지 발행이 DB 상태 변경과 원자적으로 처리되도록 했습니다

728x90
반응형
SMALL

'면접 준비' 카테고리의 다른 글

[설계 면접] 주문 생성 중 결제가 실패했을 때, 주문 상태와 결제 상태를 어떻게 동기화하나요?  (0) 2025.05.27
[설계 면접] Spring Cloud Gateway나 Config Server가 죽으면 어떻게 되나요?  (0) 2025.05.27
[설계 면접] 만약 Filebeat, ELK중 하나라도 장애가 발생한다면 어떻게 처리할 수 있나요?  (0) 2025.05.27
[설계 면접] Redis가 다운되면 서비스는 어떻게 동작해야 하나요?  (1) 2025.05.27
[설계 면접] 트래픽이 갑자기 몰리는 경우 어떻게 처리할 수 있도록 설계했나요?  (1) 2025.05.27
'면접 준비' 카테고리의 다른 글
  • [설계 면접] 주문 생성 중 결제가 실패했을 때, 주문 상태와 결제 상태를 어떻게 동기화하나요?
  • [설계 면접] Spring Cloud Gateway나 Config Server가 죽으면 어떻게 되나요?
  • [설계 면접] 만약 Filebeat, ELK중 하나라도 장애가 발생한다면 어떻게 처리할 수 있나요?
  • [설계 면접] Redis가 다운되면 서비스는 어떻게 동작해야 하나요?
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (325)
      • 면접 준비 (22)
        • OS (6)
        • Spring Security (0)
        • Java (3)
        • DB (11)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      백준
      자바 면접
      redis 채팅
      Spring
      Til
      jsp기초
      Springframework
      HTML
      리눅스
      springsecurity
      JSP
      자바기초
      자바스크립트
      스프링프레임워크
      프로그래머스
      Spring Data Redis
      자바 반복문
      JS
      레디스
      자바 면접질문
      자바
      java
      리눅스마스터2급정리
      리눅스마스터2급
      jsp request
      CSS
      JavaScript
      spring redis
      자바 알고리즘
      redis
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    [설계 질문] Exactly-once 보장을 위한 설정과 전략
    상단으로

    티스토리툴바