본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/4hTSJNB
I. 학습 인증샷 4장 이상 포함
1. 공부시작: 날짜, 시각 다 나오도록
2. 공부 종료: 날짜 시각 다 나오도록
3. 1개 클립 수강 (강의장 목록 캡쳐, 수강화면이 보이지 않도록) 1장
4. 학습 인증샷 1장(필기 촬영이나 작업물 촬영)
II. 학습 후기 700자 이상 (공백 제외)
Exactly Once Semantics(EOS)에 대한 설명이다. 2개로 나누어져 있는 것 같다.
요약
Delivery Semantics
- 최대 한번(At-Most-Once)
- 메시지 전송 실패 시 재시도하지 않음
- 데이터 유실 가능성 존재
- 최소 한번(At-Least-Once)
- ack가 시간 초과되거나 오류 수신시 메시지가 토픽에 기록되지 않는다고 가정하고
메시지 전송을 다시 시도할 수 있음 - ACK 미수신 시 재전송으로 인한 중복 데이터 발생 가능성 존재
- ack가 시간 초과되거나 오류 수신시 메시지가 토픽에 기록되지 않는다고 가정하고
- 정확히 한번(Exactly-Once)
- 중복과 유실을 동시에 방지**
EOS 구현 핵심 요소
- Idempotent Producer
- `enable.idempotence=true` 설정으로 메시지 고유 식별(Producer ID + Sequence Number)
- 브로커는 중복 메시지 감지 시 DUP 응답으로 중복 저장 방지
- Transaction
- `transactional.id` 설정과 트랜잭션 API 사용
- Consumer는 `isolation.level=read_committed`로 커밋된 메시지만 수신
- 주요 사용 사례
- 금융 거래(송금/결제)
- 광고 조회수 기반 과금
- 서비스 간 정산 데이터 전송
와 벽느낀다...
- Apache Kafka의 Exactly Once Semantics의 기본 설명인데.. 존나 어려움
- PDF자료는 너무 좋다 는 3가지 방법에 대해 모두 설명하고 있어서 개념은 이해했다.
- Idempotent Producer와 Transaction의 조합인데... 여기서부터 어렵다
- Kafka의 Idempotent Producer는 메시지가 중복으로 처리되는 것을 방지하여
“정확히 한 번만” 메시지를 브로커에 기록하도록 보장하는 기능이다.- 각 프로듀서는 고유한 Producer ID (PID)를 부여받고
- 메시지마다 순차적으로 증가하는 Sequence Number가 포함된다.
- 브로커는 PID와 Sequence Number를 기반으로 메시지를 추적하며 중복된 메시지를 무시한다
- Kafka에서 트랜잭션은 여러 메시지를 하나의 작업 단위로 묶어 원자적(Atomic)으로 처리하는 DB 트랜잭션과 비슷한 개념이다.
- Producer는 `transactional.id`를 설정하여 고유한 트랜잭션을 식별한다..
- 프로듀서는 Transaction API를 사용해서 개발한다. (현재는 개념 설명이라서 그런지 구체적인 API는 설명하지 않고 있다.)
- 컨슈머는 `isolation.level`를 `read_committed`(커밋된 메시지만 읽음)으로 설정한다.
- Kafka의 Idempotent Producer는 메시지가 중복으로 처리되는 것을 방지하여
- ACK를 못받으면?
- 프로듀서는 재시도를 수행한다
- `enable.idempotence=true` 설정하지 않으면 브로커의 중복 수신이 되어버렸을 것.
- `enable.idempotence=true` 설정하였으므로 브로커가 체크하여 메시지가 중복된 것을 확인한다
- 메시지를 저장하지 않는다(파티션 기록 x)
- 프로듀서에게 DUP Response를 리턴한다.
'패캠챌린지 > Kafka EcoSystem - 진행중' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 22일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.26 |
---|---|
패스트캠퍼스 환급챌린지 21일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.25 |
패스트캠퍼스 환급챌린지 19일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.23 |
패스트캠퍼스 환급챌린지 18일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.22 |
패스트캠퍼스 환급챌린지 17일차 : 한번에 끝내는 KafkaEcosystem 강의 후기 (0) | 2025.03.21 |