Database/Kafka

[kafka-2] Kafka 용어 설명

데이25 2023. 9. 23. 16:33

브로커

  • 카프카가 설치된 서버단위
  • 보통 3개단위로 구성
  • replication
  • 파티션의 복제

리더 - 팔로워

  • ISR : In Sync Replica
  • 파티션의 고가용성을 위해 사용 -> 파티션 복제기능으로 데이터 유실 방지
  • replication이 많다고 좋은것은 아님. 브로커의 리소스 사용량이 늘어나게 된다.
  • 저장시간을 잘 생각해서 레플리케이션 설정
  • 리더 파티션 : kafka 클라이언트와 데이터 주고받는 역할
  • 팔로워 파티션 : 리더파티션으로 부터 레코드 지속적으로 복제
  • 특정 파티션의 리더,팔로워가 레코드가 모두 복제되어 Sync가 맞는 상태 👉 ISR
  • unclean.leader.election.enable = default는 false
    ->만약 true ? 유실이 된다. 데이터 처리가 중요하다는 의미

카프카 Lag

  • 카프카 프로듀서 -> 토픽에 데이터를 넣게됨.
  • 데이터가 넣게되면 오프셋이라는 숫자가 붙는다.
  • 프로듀서가 넣은 데이터의 오프셋 / 컨슈머가 데이터 가져간 오프셋 간의 차이가 발생
    -> Consumer Lag
  • 렉의 숫자를 통해 프로듀서와 컨슈머의 상태에 대해 유추가 가능하다.
  • 주로 컨슈머의 상태에 대해 볼때 사용한다.
  • 렉은 각 파티션 오프셋 기준으로 프로듀서가 넣은 데이터 오프셋과 컨슈머가 가져가는 데이터 오프셋의 차이를 기반으로 한다.
  • 토픽에 여러 파티션 존재 -> 렉 여러개 존재 가능

Records-lag-max

  • 한개의 토픽과 컨슈머 그룹에 대한 Lag 여러개 존재할 때 그 중 높은 숫자의 Lag을 의미한다.

KafkaConsumer 객체

  • lag 실시간 확인
  • consumer 단위에서 보는것은 디펜던시가 걸리기때문에 빙이 많이든다.
  • 운영이 까다롭다.

Burrow

  • 컨슈머 lag 모니터링을 도와주는 독립적인 앱플리케이션
  • 멀티 카프카 클러스터 지원
  • HTTP API 제공 조회가능