#exactly-once
글
-
Kafka 소스 파헤치기 12: 멱등성과 트랜잭션 — 정확히 한 번은 어떻게 만들어지나, 그리고 연재를 마치며
enable.idempotence=true 와 transactional.id 한 줄 뒤에서 무슨 일이 생기는지 소스로 따라갑니다. 브로커가 producer id·에포크·시퀀스로 재시도 중복을 가려내는 곳, 트랜잭션 코디네이터가 __transaction_state 에 상태를 적고 커밋·중단 마커(컨트롤 레코드)를 파티션마다 쓰게 하는 길, read_committed 컨슈머가 마지막 안정 오프셋(LSO)과 중단된 트랜잭션 목록으로 걸러 읽는 방법, 같은 transactional.id 의 옛 프로듀서를 에포크로 막는 펜싱을 맨 소켓·kafka-dump-log·kafka-transactions 예제로 확인합니다. 마지막 글이라 1~12편을 되짚으며 연재를 마칩니다.