이 글은 데브원영님께서 유튜브에 올려주신 카프카 강의를 정리한 내용입니다.
url: https://www.youtube.com/playlist?list=PL3Re5Ri5rZmkY46j6WcJXQYRlDRZSUQ1j
소개
링크드인에서 개발한 오픈소스로 고가용성과 높은 처리량을 지원
구조와 개념
- 구성소개
- 프로듀서: 데이터를 카프카로 입력하는 역할
- 컨슈머: 카프카에서 데이터를 가져가는 역할
- 토픽
- 데이터가 저장되는 공간(DB의 Table과 유사한 개념)
- 여러개 생성이 가능하고, 네이밍을 지정할 수 있음
- 여러개의 파티션으로 구성
- 추가된 파티션은 삭제 불가
- 동작 방식
- 프로듀서가 데이터를 카프카에 입력
- 데이터는 특정 토픽의 특정 파티션에 순서대로 저장
- 데이터가 저장되면 offset 번호가 지정. 새로운 데이터는 다음 offset 번호로 증가되어 저장
- 파티션이 여러개인 경우 옵션에 따라 다르게 저장
- 파티션 키를 null로 지정: 라운드 로빈으로 파티션에 나눠서 저장
- 파티션 키를 null이 아닌 값으로 지정: 해쉬값으로 변환된 특정 파티션에 저장. 동일한 값을 지정하면 동일 파티션에 저장
- 컨슈머는 특정 파티션에 입력된 순서대로 가져감
- offset 번호 순서대로 데이터를 가져가고, 가져간 offset 번호를 기록
- 컨슈머가 데이터를 가져가도 저장된 데이터는 삭제되지 않고 다른 컨슈머에서 조회가 가능(카프카의 장점)
- 용도에 따라 컨슈머를 여러개 구성 가능(ex - 백업용, 집계용)
'파이프라인' 카테고리의 다른 글
nginx 로그 - fluent - pubsub - apache-beam 샘플 코드 (0) | 2023.06.06 |
---|---|
fluentd-pubsub 예제 (0) | 2023.01.01 |
fluentd example(docker-compose) (1) | 2022.12.25 |
fluentd example(docker logging driver) (0) | 2022.12.16 |
td-agent 설정 (0) | 2022.12.11 |