kafka는 event streaming platform이다.
그럼 event는 무엇인가 event는 비즈니스에서 일어아는 모든 데이터를 의미한다.
이런 event 데이터는 BigData의 특징을 가진다. 비즈니스에서 발생하는 모든 이벤트가 광활하게 발생하기 때문에 대용량의 데이터가 발생한다.
이런 event가 계속해서 들어오고 처리되기 때문에 event stream(event의 흐름)이라고 명칭한다.
이벤트 스트림을 안정하게 전송이 가능하다.
이벤트 스트림을 디스크에 저장을 할 수 있다.
이벤트 스트림을 분석 및 처리가 가능하다.
kafka는 대용량의 event stream을 안전하게 전송이 가능하면서 그 내용을 디스크에 저장 할 수 있다. 그리고 저장된 데이터를 빠르게 분석 및 처리가 가능하다.
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 파일이 생성이 되고 새로 생성된 곳에 데이터가 저장되게 된다.