Web_Backend/Kafka2023. 12. 26. 16:58[Kafka] 8장 ‘정확히 한 번’의미구조(멱등성)

7장 : 신뢰성 있는 데이터 전달에서는 ‘최소 한 번’ 전달에 초점을 맞췄다면, 이번 장에서는 ‘정확히 한 번’에 초점을 맞춘다. 신뢰성을 보장한다고 하더라도 여전히 메시지 중복의 가능성은 남아있다. 하지만, 이벤트를 읽어서 평균을 구하고 결과값을 산출하는 애플리케이션을 예로 들면, 특정 이벤트가 중복해서 쓰여짐으로써 평균값이 잘못 계산되는 오류가 발생될 수 있고, 이로 인해서 “더 강력한 보장(정확히 한 번 exactly-once semantics)”을 제공할 필요가 있다. 이번 장에서는 카프카의 ‘정확히 한 번’의미구조를 사용하는 방법과, 권장되는 활용 사례, 그리고 그 한계에 대해서 살펴본다. 카프카의 ‘정확히 한 번’의미구조는 두 개의 핵심 기능(명등적 프로듀서 idempotent producer..

Web_Backend/Kafka2023. 12. 26. 16:45[Kafka] 6장 카프카 내부 매커니즘

카프카 프로덕션 환경에서 운용하기 위해서나, 카프카를 사용하는 애플리케이션을 개발하기 위해 꼭 내부 메커니즘을 알아야 하는 것은 아님. 하지만 트러블 슈팅, 혹은 실행되는 방식을 이해하는 데에 도움이 될 것. 또한 카프카 튜닝 시 명확한 의도를 가지고 설정값을 잡아주는 등 특히 도움이 될 것으로 봄. 이 장에서는 특히 아래 4가지 주제를 중점으로 다뤄볼 것. 카프카 컨트롤러 카프카에서 복제(replication)가 작동하는 방식 카프카가 프로듀서와 컨슈머의 요청을 처리하는 방식 카프카가 저장을 처리하는 방식(파일 형성, 인덱스 등) 6.1 클러스터 멤버십 기존 버전 카프카 : 주키퍼 사용. 각 브로커는 고유한 식별자(브로커 설정 파일에 정의되었거나, 자동으로 생성된)를 가짐 브로커 프로세스 시작 때마다 ..

[Kafka] 4장. 카프카 컨슈머
Web_Backend/Kafka2023. 11. 2. 19:11[Kafka] 4장. 카프카 컨슈머

카프카 컨슈머 : 중요 개념 1. 컨슈머와 컨슈머 그룹 1) 컨슈머 그룹이란? 카프카의 데이터 읽기는 다른 메시지 시스템의 읽기와 약간 다르다 여러 프로듀서들이 해당 토픽에 메시지를 쓰는 속도가 컨슈머가 메시지를 처리하는 속도보다 빠르다면 하나의 컨슈머만으로 처리한다면 추가되는 메시지 속도를 따라갈 수 없다 당연히 토픽을 소비하는 컨슈머의 수를 늘려야 한다 다수의 프로듀서들이 같은 토픽의 메시지들을 쓸 수 있는 것과 마찬가지로 다수의 컨슈머들이 같은 토픽의 메시지들을 분담해 읽을 수 있어야 한다 카프카 컨슈머들은 컨슈머 그룹에 속한다. 다수의 컨슈머가 같은 토픽을 소비하며 같은 컨슈머 그룹에 속하면 각 컨슈머가 해당 토픽의 서로 다른 파티션을 분담해 메시지를 읽을 수 있다. 2) 컨슈머 그룹의 컨슈머 수..

[Kafka] 3장. 카프카 프로듀서 : 카프카에 메시지 쓰기
Web_Backend/Kafka2023. 11. 2. 16:54[Kafka] 3장. 카프카 프로듀서 : 카프카에 메시지 쓰기

* 이 글은 카프카 핵심 가이드 - 대규모 실시간 데이터와 스트림 처리 [ 개정증보판 ]를 읽고 스터디 후 작성한 글입니다. 3장. 카프카 프로듀서 : 카프카에 메시지 쓰기 카프카 사용 예시 큐, 메시지 버스, 데이터 저장 플랫폼 등으로 활용 프로듀서(데이터를 씀)나 컨슈머(데이터를 읽어 올 때 사용) 혹은 두 가지 기능을 모두 수행하는 애플리케이션 생성해야 함. 즉, 아파치 카프카는 개발자들이 카프카와 상호작용 하는 애플리케이션을 개발할 때 사용 할 수 있는 ‘클라이언트 API’와 함께 배포됨 프로듀서를 사용하는 방법에 대해 배움 프로듀서의 디자인 프로듀서 주요 요소의 전체적인 모습 KafkaProducer와 ProducerRecord객체 생성법 카프카에 레코드 전송하는 법 카프카가 리턴할 수 있는 에..

[Kafka] 1. 카프카 시작하기
Web_Backend/Kafka2023. 11. 2. 16:32[Kafka] 1. 카프카 시작하기

* 이 글은 카프카 핵심 가이드 - 대규모 실시간 데이터와 스트림 처리 [ 개정증보판 ] 를 읽고 작성한 글 입니다. 1.1 발행/구독 메시지 전달 1.2 카프카 입문 카프카에 저장된 데이터는 순서를 유지한 채로 지속성 있게 보관, 결정적(deterministic)으로 읽을 수 있음. 확장 시 성능을 향상하고 실패가 발생하더라도 데이터 사용에는 문제가 없도록 시스템 안에서 데이터를 분산시켜 저장할 수 있음. “분산 커밋 로그” “분산 스트리밍 플랫폼” 아파치 카프카 주요 기능 : 일정 기간 동안 메시지를 지속성 있게 보관하는 보존 기능 특정 기간, 특정 사이즈에 도당 할 때 까지 보존하도록 설정 가능(만료 시 삭제) 1.2.1 메시지와 배치 메시지 : 데이터의 기본 단위(단순히 바이트의 배열→ 특정한 형..

image