💡 해당 글은 '카프카 핵심 가이드 2nd Edition'을 읽고 정리한 글입니다. 3️⃣ 스트림 처리 디자인 패턴스트림 처리 아키텍처의 공통된 요구 사항을 잘 처리는 기본 디자인 패턴들을 살펴보자.단일 이벤트 처리가장 단순한 스트림 처리 패턴으로, 각각의 이벤트를 개별적으로 처리하는 것이다.불필요한 이벤트를 스트림에서 걸러내거나 각 이벤트를 변환하기 위해 사용되는 경우가 많아 맵/필터(map/filter) 패턴이라고도 불린다.스트림의 이벤트를 읽어와서 각각의 이벤트를 수정한 뒤, 수정된 이벤트를 다른 스트림에 쓴다.위 예시는 로그 이벤트를 읽어와서 우선순위가 높은 ERROR 이벤트를 우선순위가 높은 토픽에, 나머지는 우선순위가 낮은 토픽에 쓰는 것이다.각각의 이벤트가 독립적으로 처리될 수 있기 때문에..
개발 서적/카프카 핵심 가이드

💡 해당 글은 '카프카 핵심 가이드 2nd Edition'을 읽고 정리한 글입니다. 1️⃣ 스트림 처리란 무잇인가?여기서 스트림은 데이터 스트림을 말한다.데이터 스트림은, 무한히 늘어나는 데이터 세트를 말한다. 시간이 지날수록 새로운 레코드가 계속해서 추가된다.그래서 이벤트를 스트림으로 관리한다면, 우리가 분석하고자 하는 모든 비즈니스 활동을 나타낼 수 있다. 이벤트 스트림의 특징✅ 이벤트 스트림에는 순서가 있다.이벤트는 자체로 다른 이벤트 전에 혹은 후에 발생했다는 의미를 가진다.금융 이벤트에서, 입금한 뒤 나중에 출금하는 것과 출금 먼저 하고 부채 상환을 위해 나중에 입금하는 것과 완전히 다르다.테이블의 레코드는 항상 순서가 없는 것으로 간주되기 때문에, 데이터 베이스 테이블과의 차이점 중 하나이다..

💡 해당 글은 '카프카 핵심 가이드 2nd Edition'을 읽고 정리한 글입니다. 1️⃣ 멱등적 프로듀서명등적이란, 동일한 작업을 여러 번 실행해도 한 번 실행한 것과 결과가 같은 것을 말한다. 아래와 같은 경우 명등적이지 못한다고 할 수 있다.파티션 리더가 프로듀서로부터 레코드를 받고 복제를 성공했다.이때 만약 프로듀서에 응답을 보내기 전에 브로커에 크래시가 발생하면, 프로듀서는 메세지를 재전송하게 된다.파티션에 이미 저장되어 있는 메세지가 오는 것으로, 즉 중복이 발생한다.그래서 프로듀서의 경우 멱등적 프로듀서를 설정해줌으로써, '정확히 한 번'을 보장해 줄 필요가 있다. 작동원리중복 방지는 고유한 식별자를 기준으로 구분한다.모든 메세지는 고유한 프로듀서 ID와 시퀀스 넘버를 가지게 된다.대상 토..

💡 해당 글은 '카프카 핵심 가이드 2nd Edition'을 읽고 정리한 글입니다. 1️⃣ 신뢰성 보장카프카에서 보장하는 것은 아래와 같다.파티션 안의 메세지들 간에 순서클라이언트가 쓴 메세지는 모든 인-싱크 레플리카의 파티션에 쓰여진 뒤에야 커밋된 것으로 간주한다.최소 1개의 작동 가능한 레플리카가 남아 있는 한 유실되지 않는다.컨슈머는 커밋된 메세지만 읽을 수 있다. 2️⃣ 복제카프카의 복제 메커니즘은 파티션별로 다수의 레플리카를 유지한다는 점에서 카프카 신뢰성 보장의 핵심이다.각 파티션은 다수의 레플리카를 가질 수 있으며, 그 중 하나가 리더가 된다.모든 이벤트들은 리더 레플리카에 읽어지고 쓰여진다.다른 레플리카들은 단순히 리더와 동기화를 맞추면서 최신 이벤트를 제시간에 복사해, 리더와 상태를 유..