728x90
Kafka(카프카) - 대용량 데이터 튜닝(고려 사항)
- 브로커는 주로 3개로 구성
- 토픽은 특정 상황 고려하여 구성
- 파티션과 컨슈머 그룹 개수, 리플리케이션 3
- 키 값 이용해서 넣을 경우 미리 파티션 정해야함(도중 추가시 매핑 테이블 변경으로 동일 파티션으로 메시지 가지 않을 수 있음)
- 로그 보관 혹은 삭제 여부 및 기간
- 마지막 오프셋만 필요할 경우 로그 컴팩션 기능 활용
- 로그 컴팩션 기능 : 메시지의 키값을 기준으로 마지막 데이터만 보관
- JVM 힙 메모리 사이즈
- 처리량 효율을 위한 파티션 배치 여부
- 분 당 처리 하기 때문에 배치가 효율적으로 예상(2.4버전이상 스티키 파티션)
- batch_size 옵션 등 설정
- 프로듀서 부하 발생 시 압축 고려
- 부하 테스트 결과 프로듀서에서보단 컨슈머쪽으로 인한 lag 발생(producer, consumer 모두 logstash 사용)
- 컨슈머쪽 튜닝 필요(elasticsearch consumer)
- 부하 테스트 결과 프로듀서에서보단 컨슈머쪽으로 인한 lag 발생(producer, consumer 모두 logstash 사용)
- 파티션이 브로커의 파일 시스템 이용하는데 브로커가 최대 열 수 있는 파일 개수 제한 있으므로 파티션 최대 개수 고려
- 컨슈머 그룹핑 후 컨슈머들의 추가 및 재기동 시 리밸런싱 방지를 위해 스태틱 멤버쉽 고려(성능 문제)
- 카프카 2.3이상 버전 (버전 확인 필요)
- group.instance.id
- 인스턴스별로 고유값 입력, 지정할 경우
- session.timeout.ms
- 값을 기본값 보다 크게 지정(컨슈머 재기동 시간 고려해서 설정)
- 협력적 스티키파티션 고려(2.5 버전)
- 주키퍼 클러스터 구성 시 5대 구성 추천
- jvm 설정(카프카 추천)
- Xmx6g -Xms6g
- XX:MetaspaceSize=96m
- XX:+UseG1GC
- XX:MaxGCPauseMillis=20
- XX:InitiatingHeapOccupancyPercent=35
- XX:G1HeapRegionSize=16M
- XX:MinMetaspaceFreeRatio=50
- XX:MaxMetaspaceFreeRatio=80
- XX:+ExplicitGCInvokesConcurrent
'BackEnd 학습 > Kafka' 카테고리의 다른 글
Kafka(카프카) - 기초 개념 (0) | 2023.02.02 |
---|