BackEnd 학습/Kafka

Kafka(카프카) - 대용량 데이터 튜닝(고려사항)

잉아당 2023. 4. 9. 14:28
728x90

Kafka(카프카) - 대용량 데이터 튜닝(고려 사항)

  • 브로커는 주로 3개로 구성
  • 토픽은 특정 상황 고려하여 구성
  • 파티션과 컨슈머 그룹 개수, 리플리케이션 3
    • 키 값 이용해서 넣을 경우 미리 파티션 정해야함(도중 추가시 매핑 테이블 변경으로 동일 파티션으로 메시지 가지 않을 수 있음)
  • 로그 보관 혹은 삭제 여부 및 기간
    • 마지막 오프셋만 필요할 경우 로그 컴팩션 기능 활용
    • 로그 컴팩션 기능 : 메시지의 키값을 기준으로 마지막 데이터만 보관
  • JVM 힙 메모리 사이즈
  • 처리량 효율을 위한 파티션 배치 여부
    • 분 당 처리 하기 때문에 배치가 효율적으로 예상(2.4버전이상 스티키 파티션)
    • batch_size 옵션 등 설정
  • 프로듀서 부하 발생 시 압축 고려
    • 부하 테스트 결과 프로듀서에서보단 컨슈머쪽으로 인한 lag 발생(producer, consumer 모두 logstash 사용)
      • 컨슈머쪽 튜닝 필요(elasticsearch consumer)
  • 파티션이 브로커의 파일 시스템 이용하는데 브로커가 최대 열 수 있는 파일 개수 제한 있으므로 파티션 최대 개수 고려
  • 컨슈머 그룹핑 후 컨슈머들의 추가 및 재기동 시 리밸런싱 방지를 위해 스태틱 멤버쉽 고려(성능 문제)
    • 카프카 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