새소식

반응형
Kafka

[Kafka] 실전 카프카:3장:기본 개념과 구조

  • -
반응형

3장에서는 카프카의 기본 개념과 구조를 다루고, 카프카의 처리량을 높이기 위해 설계된 분산 시스템, 페이지 캐시, 배치 전송 등을 살펴본 후, 주키퍼의 역할에 대해서도 좀 더 파고든다

 

카프카 기초 다지기

  • 리플리케이션
    • 토픽 생성 명령어 중 replication-factor 옵션 : 원본을 포함한 복제본의 수 
  • 파티션
    • 토픽 하나를 여러 개로 나눠 병렬 처리가 가능하게 만든 것
    • 파티션 번호는 0부터 시작
    • 파티션 수는 초기 생성 후 늘릴 수 있지만, 절대로 줄일 수 없다!

카프카 핵심 개념

  • 분산시스템
    • 분산 시스템은 네트워크상에서 연결된 컴퓨터들의 그룹을 말하며, 단일 시스템이 갖지 못한 높은 성능을 목표로 합니다.
    • 이러한 분산 시스템은 성능이 높다는 장점 이외에도 하나의 또는 노드 등에 장애가 발생할 다른 서버 또는 노드가 대신 처리하므로 장애 대응이 탁월하며, 부하가 높은 경우에는 시스템 확장이 용이하다는 장점도 있습니다
  • 페이지 캐시
    • 카프카가 직접 디스크에서 읽고 쓰기를 하지 않고 페이지 캐시를 통해 읽고 쓰기를 한다
  • 배치 전송 처리
    • 통신을 묶어서 처리
    • 단건으로 통신할 때에 비해 네트워크 오버헤드를 줄일 수 있을 뿐만 아니라 장기적으로는 더욱 빠르고 효율적으로 처리할 수 있다
  • 압축 전송
    • 카프카는 메시지 전송 시 좀 더 성능이 높은 압축 전송을 사용하는 것을 권장
    • 일반적으로 높은 압축률 gzip, zstd
    • 빠른 응답 속도 lz4, snappy
  • 토픽, 파티션, 오프셋
    • 토픽: 데이터를 저장하는데
    • 파티션: 토픽의 병렬 처리를 위해 나뉜 개념
    • 오프셋: 파티션의 메시지가 저장되는 위치 
  • 고가용성 보장
  • 주키퍼의 의존성
    • 주키퍼는 여러 대의 서버를 클러스터로 구성하고, 살아 있는 노드 수가 과반수 이상 유지된다면 지속적인 서비스가 가능한 구조
    • 반드시 홀수로 구성해야 한다
    • 주키퍼: 카프카의 중요한 메타데이터를 저장, 각 브로커를 관리하는 중요한 역할

 

 

 

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.