DevBoi

[Kafka] 데이터 파이프라인으로 적합한 이유 본문

Develop/[Kafka]

[Kafka] 데이터 파이프라인으로 적합한 이유

HiSmith 2023. 7. 17. 22:41
반응형

카프카가 왜 데이터 파이프라인으로 활용하게 되는지 살펴보자

 

1. 높은 처리량

카프카는 프로듀서가 브로커로 데이터를 보낼때와 컨슈머가 브로커로부터 데이터를 받을때 모두 묶어서 전송한다.

많은 양의 데이터를 송수신할 때 맺어지는 네트워크 비용은 무시할 수없다.

동일한 양의 데이터를 보낼때 네트워크 통신 횟수를 최소한으로 줄인다면, 동일 시간 내에 더 많은 데이터 를 전송할 수 있다.

또한 파티션 단위를 통해 동일 목적의 데이터를 여러 파티션에 분배하고, 데이터를 병렬 처리할 수 있다.

파티션 개수만큼 컨슈머 개수를 늘려서 동일 시간당 데이터 처리량을 늘리는 것이다.

최소한의 네트워크 비용으로 최대한의 데이터 전송이 가능하다는 것이 결론이다.

파티션은 최소 1개이상, N개까지 가능하다.

컨슈머 개수를 한개 늘리고, 파티션을 한개 늘리고 등등의 스케일 아웃 기능을 편하게 지원해준다.

 

2. 확장성

데이터가 얼마나 들어올지 예측하기 어렵다.

하루에 데이터가 많이 들어올때, 데이터가 적을때, 많을때 카프카 클러스터의 브로커를 최소한의 개수로 운영하다가

많으면 브로커 개수를 스케일 아웃해서 운용할 수 있다.

카프카를 운영할때, 한개의 클러스터는 여러개의 브로커(프로세서)로 이루어진다.

또한 이런 스케일인, 스케일 아웃은 무중단으로 변경이 가능하다.

 

3. 영속성

데이터를 생성한 프로그램이 종료되더라도, 즉 카프카가 꺼지더라도 유지된다.

전송 받은 데이터를 파일시스템에 저장한다. 

운영체제에서는 파일 IO성능향상을 위해 페이지캐시 영역을 메모리에 따로 생성하여 사용한다.

페이지 캐시 메모리 영역을 사용하여 한번 읽은 파일 내용은 메모리에 저장했다가. 다시 사용한다.

즉 한번 읽은 파일 내용은 메모리에 저장시켰다가 , 다시 사용하는 방식

즉 메모리와 파일 시스템 둘다 사용한다.

 

4. 고가용성

일부 서버가 장애가 나더라도 안전하고 지속적으로 데이터를 처리할 수 있다.

복제된 데이터가 나머지 브로커에 저장되어있으므로 저장된 데이터를 기준으로 지속적으로 데이터 처리가 가능한 것이다.

 

 

 

반응형

'Develop > [Kafka]' 카테고리의 다른 글

[Kafka] Broker의 역할  (0) 2023.07.18
[Kafka]주키퍼 앙상블  (0) 2023.07.18
[Kafka] 브로커와 클러스터  (0) 2023.07.18
[Kafka] 카프카 생태계  (0) 2023.07.17
[Kafka] 카프카의 구조  (0) 2023.07.17