2.1 메시지 생산과 소비
- 메시지(레코드) : 카프카를 통해 흐르는 데이터의 기본 요소
2.2 브로커란 무엇인가 ?
- 브로커 : 카프카의 서버 측면으로 생각할 수 있음.
https://ddoance.tistory.com/290
- 토픽 세부 정보 조회 시, 파티션0을 보면 브로커0에 레플리카 사본이 있고, 이 파티션은 브로커 1과 2에도 레플리카가 존재한다.
- 마지막 컬럼인 Isr은 동기화된 레플리카를 표시한다. (현재 리더보다 뒤쳐지지 않은 상태의 브로커를 보여준다.)
- 브로커 0이 파티션 0에 대한 리더 레플리카를 보유하고, 리더 레플리카가 아닌 파티션1과 2에 대해서도 레플리카 사본을 보유
- 파티션 1의 사본 레플리카 데이터는 브로커 1에서 복사가 이루어짐.
2.3 카푸카 투어
프로듀서 | 카프카로 메시지 보낸다. |
컨슈머 | 카프카에서 메시지 조회한다. |
토픽 | 메시지를 브로커에 저장하기 위한 논리적인 이름 |
주키퍼 앙상블 | 클러스터에서 컨센서스(consensus)를 유지하도록 돕는다. |
브로커 | 커밋 로그를 처리한다 (디스크에 메시지를 저장하는 방법) |
2.3.1 프로듀서와 컨슈머
1) 프로듀서 : 메시지를 카프카 토픽에 보내는 도구
- 디폴트 프로듀서는 없으나, 자체적으로 구현된 코드에서 프로듀서를 사용한다.
ex, 플룸(flume), 커넥트(connect), 스트림즈(streams)등의 도구 사용이 포함될 수 있음.
2) 컨슈머 : 카프카에서 메시지를 검색하는 도구
2.3.2 토픽 개요
- 대다수 사용자가 어떤 메시지가 어디로 가야 하는지에 관한 로직 생각하기 시작하는 곳
- 파티션 partition 이라는 단위로 구성됨. = 1개 이상의 파티션이 단일 토픽을 구성함.
* 단일 파티션의 에플리카는 단 하나의 브로커에만 존재하며 브로커 간에는 분할할 수 없음.
- 3개의 데이터 복제본 설정 시, 토픽 자체는 단일 엔티티가 아니고 각각 3번씩 복제되는 여러 개의 파티션임
- 파티션 복제본(레플리카) 중 하나가 리더가 되며, 다른 두 복사본은 파티션 리더로부터 데이터를 업데이트 받는 팔로워가 될 것
- 예외나 오류가 없을 시는 리더 레플리카에서만 읽고 쓴다. (2.4 버전 부터는 가장 팔로워더라도 가까운 레플리카를 선택해 소비하는 기능이 포함됨)
2.3.3 주키퍼의 용도
- 디스커버리, 컨피규레이션, 동기화 서비스를 고가용성 방식으로 제공하는 분산 저장소
- 프로덕션 사용 사례에서는 주키퍼는 앙상블이지만, 로컬 셋업에서는 단 하나의 서버만 실행할 것임.
2.3.4 카프카의 고가용성 아키텍쳐
- 핵심 중 하나는 운영체제의 페이지 캐시 사용이다.
- 또 다른 설계 고려사항은 데이터의 접근 패턴으로, 새 메시지가 유입될때 많은 컨슈머가 가장 최신 메시지와 상호 작용할 가능성이 높아, 최신 메시지는 캐시로부터 제공받을 수 있음.
- 자체 프로토콜 사용
2.3.5 커밋 로그
- 이벤트가 항상 로그 마지막에 추가되는 추가 전용 append-only 특성이 있다.
2.4 다양한 소스 코드 패키지와 역할
2.4.1 카프카 스트림즈
- 카프카 소스 코드 프로젝트의 streams 디렉터리에서 찾을 수 있음
- 가장 좋은점 중 하나는 독립된 프로세싱 클러스터가 필요하지 않음.
- 내결함성을 보장하는 로컬 상태, 한 번에 하나씩 메시지 처리, 정확히 한 번 개념을 지원함
2.4.2 카프카 커텍트
- 코어 카프카 커넥트 폴더에서 찾을 수 있음
- 아파치 고블린과 아파치 플룸 도구 대체
- source connector는 소스에서 카프카로 데이터 임포트 하기 위해 사용
- connect source는 메시지를 카프카로 생산하기 위해 사용
- sink connector는 카프카에서 다른 시스템으로 데이터 익스포트 하기 위해 사용
2.4.3 AdminClient 패키지
- 어드민 클라이언트 API
2.4.4 ksqlDB
- 데이터 엔지니어를 대상으로 하는 인터페이스
2.5 컨플루언트 클라이언트
https://docs.confluent.io/platform/current/clients/index.html
2.6 스트림 처리와 용어
'스터디 > [카프카 인 액션] (2024.12)' 카테고리의 다른 글
[카프카인액션] 1장. 특징 | 3가지 방식 | 적합하지 않을 수 있는 경우 (0) | 2024.12.07 |
---|