일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 카프카
- 기술면접공부
- 기술공부
- 스프링
- K8S
- nestjs
- 프로그래머스
- 스프링공부
- JPA
- nestjs스터디
- 자바공부
- 스프링 공부
- JPA스터디
- 스프링부트
- 자료구조공부
- JPA예제
- DDD
- 코테공부
- Kafka
- JPA 공부
- Axon framework
- querydsl
- 코테준비
- nestjs공부
- 플러터 개발
- Flutter
- JPA공부
- 스프링부트공부
- 알고리즘공부
- 플러터 공부
- Today
- Total
목록카프카 파티션 (2)
DevBoi
프로듀서 에서는 파티셔너를 제일 많이 쓴다. 총 2개의 파티셔너에 대한 지원을 해준다. UniformStickyPartitioner, RoundRobinPartitioner 2개의 파티셔너를 제공한다. 카프카 클라이언트 라이브러리에서 파티셔너를 지정하지 않는 경우, UniformStickyPartioner가 파티셔너로 기본 설정된다. 1. 메시지 키가 있을 경우 동작 UniformStickyPartioner와 RoundRobinPartitioner 둘다 메시지 키가 있을때는 메시지 키의 해시값과 파티션을 매칭하여 레코드를 전송한다. 동일한 메시지키가 존재하는 레코드는 동일한 파티션 번호에 전달 된다. 만약 파티션 개수가 변경되는 경우,메시지키와 파티션 번호 매칭은 깨지게 된다. 즉 메시지키가 있는 경우,..
토픽이라는 개념과 파티션이라는 개념이 있다. 토픽은 한개이상의 파티션으로 이루어져있고, 각각의 파티션은 큐 형태로 들어가있다. 위 그림 처럼 프로듀서에서 레코드의 값이 파티션으로 들어가게 되면, 각각의 파티션의 큐에 해당 데이터가 쌓이게 된다. 컨슈머가 데이터를 가져가도, 데이터가 삭제 되지않는다. 토픽 생성시 파티션이 배치되는 방법은 아래와 같다. 브로커 3개에서 토픽이 생성되는 것을 예시로 들어보자 기본 라운드로빈 방식으로, 순차적으로 리더 파티션이 분배된다. 프로듀서가 각각의 리더파티션과 통신을 할때 한개의 브로커에 몰리는것이 아니라, 브로커를 균등하게 나눠서 통신할 수 있는것이 장점이 된다. 데이터가 많아지더라도, 한개의 브로커와 통신하는 것이 아닌 선형 확장되는 것을 알 수 있다. 리더 파티션이..