카프카의 정의
- 카프카는 어플레키에션에서 데이터 통신을 처리해주는 큐이다
- 대용량 처리에 유용하며 고가성용을 보장한다.
- 낮은 지연 높은 처리량
- https://www.youtube.com/watch?v=waw0XXNX-uQ&feature=youtu.be
카프카 토픽
- DB의 테이블과 유사 (데이터가 들어갈 수 있는 공간)
- 토픽은 이름을 가질 수 있으며, 큐에 들어가는 목록
- auto.offset.reset=earliest 셋업이 되어야 하고 다른 컨슈머 그룹이 온다면 파티션에서 다시 데이터를 들고갈 수 있음
- 프로드셔가 파티션을 추가할 때 키가 없으면, 라운드 로빈 키가 있으면 해시값으로 지정해서 파티션에 할당
- 파티션을 늘릴 수 있지만 줄일 수 없음
- 파티션의 데이터는 log.retention.ms와 log.retention.byte에 따라 보존 시간과 크기를 설정
- https://www.youtube.com/watch?v=7QfEpRTRdIQ&feature=emb_logo
카프카 파티셔너
- 파티셔너는 프로듀서가 브로커로 데이터를 전송시켜주는 역할
- 메시지 키가 있는 경우는 특정한 해쉬값 기준으로 파티션을 고름 (동일한 키, 동일한 파티션)
- 없을 경우는 라운드 로빈으로 동작
- 커스텀 파티셔너도 개발할 수 있음
- https://www.youtube.com/watch?time_continue=209&v=-vKiNUH5OT8&feature=emb_logo
컨슈머 랙
- 렉은 토픽의 가장 최신 오프셋과 컨슈머 오프셋의 차이이다.
- 렉은 여러개가 존재할 수 있다. (파티션이 여러개니깐)
- https://www.youtube.com/watch?time_continue=184&v=D7C_CFjrzBk&feature=emb_logo
카프카 버로우
- 컨슈머 렉 모니터링 애플리케이션
- 멀티 카프카 클러스터를 지원
- sliding window 기능을 활용하여 status 기반으로 모니터링
- golang으로 개발됨
- https://www.youtube.com/watch?v=b3i6D4eeBGw&t=309s