Kafka-5

유호준·2024년 1월 25일

Kafka

목록 보기
5/6

주키퍼의 역할

  • 카프카를 실행하기 위한 요구사항
  • 카프카 클러스터의 토픽과 같은 정보를 보유한다
  • 할당과 통지를 코디네이트하여 브로커를 돕는다.

브로커 수준의 옵션

  • 구성은 카프카 클라이언트, 토픽, 브로커 작동에 있어 중요한 부분이다
  • log.dirs 구성 속성은 항상 셋업에 적합한 로그 위치로 설정해야한다.
  • 설정이 잘못된다면?
bin/kafka-topics.sh --create --bootstrap-server localhost:9094 --topic kinaction_one_replica

bin/kafka-topics.sh --describe --bootstrap-server localhost:9094 --topic kinaction_one_replica


- 위 설정에서 0번 브로커를 종료한다면 토픽을 사용할 수 없다

애플리케이션 로그

  • 일반적으로 생각하는 로그
  • 레코드 로그와는 무관
  • config/log4j.properties에 kafka.logs.dir을 수정하면 변경가능

서버 로그

  • server.log는 브로커를 종료하는 시작 오류 또는 예외가 있는지 확인하는 위치
  • 로그는 한 곳으로 집중되지 않고 브로커에 존재한다

상태관리

  • 클러스에서 하나의 브로커만 컨트롤러 역할을 수행한다
  • 컨트롤러의 역할은 클러스터를 관리하고 파티션 재할당 같은 관리작업도 수행한다
  • 어떤 브로커가 컨트롤러인지 파악하려면 zookeeper-shell.sh를 사용하면 된다.
    - get /controller

파티션 리더 레플리카와 그 역할

  • 토픽은 파티션으로 구성되며 레플리카를 가질 수 있다.
    - 파티션은 브로커의 디스크에 기록된다.
    - 레플리카 중 하나가 리더 역할을 담당한다
    - 리더는 새로 쓰인 데이터가 있는 유일한 레플리카이기 때문에 팔로워 레플리카의 소스 데이터 역할도 한다
    - 팔로워 레플리카는 리더 파티션의 컨슈머 역할을 하며 메시지를 가져온다

  • 실패한 브로커가 파티션의 리더 레플리카를 호스팅할 경우 새 리더가 선출된다

  • 레플리카는 기본적으로 자체복구 되지 않는다

  • 레플리카가 리더에서 복사하는데 너무 뒤처지게 되면 ISR에서 제거된다

데이터 손실

  • ISR이 없고 리더 레플리카가 손실된다면?
    - unclean.leader.election.enable이 true라면 최신이 아니더라도 시스템이 계속 실행되도록 파티션의 리더를 선택한다.
    - 리더가 실패했을 때 살아있는 레플리카중 어느것도 모든 데이터를 갖고 있지 않기 때문에 데이터가 손실될 수 있다

카프카 엿보기

  • 컨플루언트 클라우드를 위해 사용할 수 있는 간단한 모니터링 시스템은 그라파나와 프로메테우스가 있다
  • 프로메테우스를 사용해 카프카의 메트릭 데이터를 추출하고 저장하고 그라파나로 보내 유용한 그래픽 뷰를 생성한다
  • 카프카 익스포터는 JMX 매트릭을 받아 프로메테우스 형식으로 내보낸다
  • JMX 메트릭은 JMX_PORT를 설정해 얻을 수 있다
    - 이미 브로커가 실행중이라면 다시 시작해야한다
profile
포트폴리오 - https://drive.google.com/file/d/152OM9p7JQorjUfvR4BaxqGuP5xtQ8-fM/view?usp=sharing

0개의 댓글