개념
용어
- broker : 카프카 구성 서버
- topic : 데이터 저장되는 곳 (주제)
- producer : 데이터를 topic에 발행
- consumer : topic에 발행된 데이터를 읽어서 소비함
- consumer-group : 메시지 소비 묶음 단위 (consumer 여러개)
- zookeeper : 카프카 운영을 위한 coordination service
- partition : topic이 복사(replicate)되어 나뉘어지는 단위
토픽
설명
토픽에 데이터를 넣게 되고 컨슈머를 데이터를 가져감.
하나의 토픽은 여러 개의 파티션으로 되어있음. 파티션은 0번 부터 시작하며, 큐의 자료구조를 가짐. 해서 컨슈머에서 해당 토픽의 데이터를 가져갈때는 가장오래된 순서로 가져감.
이 때, 데이터는 사라지지 않음. 파티션에 그대로 남아있음. (하여 새로운 컨슈머가 붙어서 다시 0번부터 사용할 수 있음, 다만 컨슈머 그룹이 달라야 함 그리고 auto.offset.reset=earlist
로 세팅되어야함 )
하나의 토픽에 파티션이 2개 이상인 경우
프로듀서가 파티션이 2개인 토픽에 발행을 한다면
- 키가 null 이며, 기본 파티셔너를 사용한다면 (round robin)
- 키가 null 이 아니며, 기본 파티셔너를 사용한다면 (키의 해시값을 기준으로)