티스토리 뷰
토픽의 파티션 수가 증가함에 따라 빠른 전송이 가능
하지만 무조건 파티션 수를 늘려주는 것이 좋을까? → 파티션 수의 변경은 신중하게 결정
장점
- 높은 처리량 : 파티션은 카프카에서 병렬 처리르 지원하도록 구성하는 방안
- 하드웨어 자원을 최대한 활용 가능
- 이슈
- 파일 핸들러 낭비
- 카프카에서는 모든 디렉토리의 파일들에 대해 파일 핸들을 열게됨
- 파티션의 수가 많을수록 파일 핸들 수 역시 많아 지게 되어 리소스 낭비 발생
- 장애 복구 시간 증가
- 프로듀서 메모리 증가
- 파일 핸들러 낭비
토픽의 적절한 파티션 수는?
- 하나의 파티션에 두개의 컨슈머 연결은 불가능 (하지만 1개의 컨슈머가 같은 토픽의 다른 2개의 파티션 연결은 가능)
- Java 코드에서 consumer.assign 으로 파티션설정시 array 로 설정하기 때문에 n개의 파티션으로설정 가능
- 1:1 구조가 이상적임
- 목표 처리량의 기준을 잡아야함
- 예를들어 프로듀서 4개에서 각각 초당 10개의 메시지를 카프카 토픽으로 전송 → 카프카 토픽에서는 초당 40개의 메시지 수신
- 파티션이 1개인 경우 초당 10개의 메시지를 받는다면 파티션을 4개로 늘려서 목표 처리량을 처리 가능
- 하지만 컨슈머도 고려해야함
- 컨슈머에서 8개의 컨슈머를 통해 각각 초당 5개의 메시지를 카프카 토픽에서 가져온다면 파티션 수는 컨슈머 수와 동일하게 8개로 맞추어야함
- 파티션의 수의 증가가 필요한 경우 아무때나 변경은 가능하지만, 반대로 파티션의 수를 줄이는 방법은 없음 (토픽을 삭제해야함..)
- 적절한 파티션 수를 측정하기 어려운 경우에는 적은 수의 파티션으로 운영하고 프로듀서 또는 컨슈머에서 병목현상이 발생하게 될 때 조금씩 파티션 수와 프로듀서 & 컨슈머를 늘려가자
- 카프카에서는 브로커당 약 2,000 개 정도의 최대 파티션 수를 권장
'Programming > Open Source' 카테고리의 다른 글
[Kafka] Offset (0) | 2021.05.15 |
---|---|
[Kafka] Kafka 구성 시 하드웨어 사양 참고 (0) | 2021.05.15 |
[Kafka] Kafka 성능테스트 (0) | 2021.05.15 |
[Open Source] json-server (0) | 2021.05.15 |
JavaScript checkbox 선택 확인 (5) | 2017.04.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 미사맛집
- 리스트
- Algorithm
- ArrayList
- db
- JDBC
- Java
- scouter
- jenkins
- 도커
- 서울카페
- keycloak
- 자료구조
- 카프카
- kafka
- 초대장
- docker
- 자바
- elastic stack
- 티스토리초대장
- spring
- mysql
- 알고리즘
- 잠실맛집
- string
- PreparedStatement
- 문자열
- Array
- Database
- 송리단길맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함