kafka 저장소(Topic , Broker, Segment)

Viva의 놀이터·2022년 2월 17일
0

kafka

목록 보기
2/5
post-thumbnail

what is kafka

kafka는 무엇인가?

kafka는 event streaming platform이다.

그럼 event는 무엇인가 event는 비즈니스에서 일어아는 모든 데이터를 의미한다.

이런 event 데이터는 BigData의 특징을 가진다. 비즈니스에서 발생하는 모든 이벤트가 광활하게 발생하기 때문에 대용량의 데이터가 발생한다.

이런 event가 계속해서 들어오고 처리되기 때문에 event stream(event의 흐름)이라고 명칭한다.

kafka의 특징 big 3

  • 이벤트 스트림을 안정하게 전송이 가능하다.

  • 이벤트 스트림을 디스크에 저장을 할 수 있다.

  • 이벤트 스트림을 분석 및 처리가 가능하다.

kafka는 대용량의 event stream을 안전하게 전송이 가능하면서 그 내용을 디스크에 저장 할 수 있다. 그리고 저장된 데이터를 빠르게 분석 및 처리가 가능하다.

kakfa가 사용되는 분야

  • messaging system

  • IOT 디바이스 데이터 수집

  • 애플리케이션 로그 수집

  • Realtime Event Stream Processing (실시간으로 특정 이벤트를 감지하여 처리하는 행위)

  • MSA 형태의 서비스간 DB 정보를 동기화 하는데 사용

  • 실시간 ETL(데이터를 추출해서 가공하고 다른 곳으로 전달하는 행위)로 빅데이터와 같이 활용

실 사용 사례

  • 카카오 모빌리티 : 택시와 사용자를 매칭시켜주고 실시간 도착 정보를 제공해주는데 사용

  • 금융어플 : 중복 거래, 오류 감지의 경우 실시간으로 고객에게 알리는데 사용

  • 쿠팡 : 주문시 실시간 재고 정보 제공

이전 포스팅에서 추가로 알게된 개념

이전 포스팅하면서 kafka를 공부하면서 정리한 내용이 있는데 이번에 추가적으로 공부하면서 이해한 내용을 추가하려고한다.

  • Topic : kafka 안에 메지시가 저장된 논리적인 장소

  • Partition: 논리적 개념인 Topic으로 묶여있는 저장소 하나의 Topic은 여러개의 Partition으로 구성되어 있고 그 이유는 Partition이 많을수록 병렬처리하기 때문에 처리 속도가 빨라진다.

  • Segment: 데이터가 저장되는 저장소인 Partition을 구성하고 있는 실제 물리 file이다. 설정한 Segment 크기(default 1GM)보다 커지거나 지정한 시간(default 168 hours)이 지나게 되면 해당 Segment는 더이상 데이터를 받지 않고 다음 Segment 파일이 생성이 되고 새로 생성된 곳에 데이터가 저장되게 된다.

  • Broker: Topic 내의 Partition 들을 분산 및 관리해주는 소프트웨어이다. 같은 말로는 kafka server라고도 한다. 각각의 Broker들은 ID로 식별된다. 최소 3대 이상의 Broker를 사용해야되고 4개의 Partition을 사용하는 것을 권장한다.
    +) 클라이언트는 하나의 Broker에만 연결하면 자동으로 cluster내의 모든 브로커와 연결된다. 하지만 하나의 브로커를 통해서 모든 브로커와 연결하는 방법은 권장되지 않는데 그 이유로는 연결하려는 하나의 Broker에 장애가 발생하면 해당 Broker를 복구하기 전 까지 애러가 발생하기 때문에 전체 Broker list로 입력하는 것을 권장하고 있다.

  • zookeeper: zookeeper는 cluster 안의 모든 Broker들을 관리하는 역할을 한다. 현재는 zookeeper없이 kafka가 작동 할 수 없다. 하지만 2022년 말에는 apache 재단에서 zookeeper를 제거 하는 작업을 하고 있어서 조만간 kafka의 사용이 더 쉬워질것이라고 한다. zookeeper는 홀수의 서버로 사용되는 것을 권장하고 있고 최소 3개, 대규모 운영이라면 5개를 권장한다. zookeeper의 failover 알고리즘은 redis의 failover 알고리즘과 유사하다
    redis 개념 보러가기
profile
역사를 잊은 기술에겐 미래가 없다

0개의 댓글