본문 바로가기

개발/공부

[인프런][아파치 카프카] 역사와 미래

탄생배경

아키텍처가 거대해 지면서 애플리케이션 사이 단방향 통신으로 모든걸 처리하기 어려워짐

 

기본구조

메시지 큐 구조

프로듀서 -> 카프카 -> 컨슈머

메세지를 컨슈머가 가져가도 카프카에서 메세지는 삭제되지 않는다.

컨슈머 커밋 : 토픽의 몇 번 메세지까지 읽었는지 저장한다.

 

카프카가 데이터 파이프라인으로 적합한 이유

1. 높은 처리량 

네트워크 비용은 무시할 수 없음.

많은 양의 데이터를 묶음 단위로 처리(배치) 할수있음 -> 대용량 실시간 로그데이터 처리에 적합하다.

파티션을 이용해 병렬 처리할수 있다.

1 파티션 - 1 컨슈머

 

2. 확장성

카프카 브로커 개수를 필요에 따라 스케일 아웃 또는 스케일 인 할 수 있다.

스케일 아웃, 스케일 인 무중단으로 가능하다.

 

3. 영속성

전송받은 메모리를 파일 시스템에 저장한다.

페이지 캐시 영역을 메모리에 따로 생성하여 사용한다.

브로커에 장애가 발생하더라도 메세지가 날라가지 않는다.

 

4. 고가용성

카프카 클러스터 : 일반적으로 브로커 3개이상을 가지고 있다.

전달받은 메세지는 각각의 브로커에 동일하게 저장된다 -> 1개의 브로커에 장애가 발생해도 다른 브로커에 저장된 데이터를 사용할 수 있다.

 

데이터 타입

배치 데이터

- 한정된 데이터 처리

- 복잡한 키 조인 수행

- 시간, 일의 지연 발생

 

스트림 데이터

- 지속적으로 들어오는 데이터를 처리

- 단순한 키 조인 수행

- 분 단위 이하 지연 발생

 


인프런의 [아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지! 강의 들으면서 기록한 내용입니다.