빅데이터 파이프라인에 적합한 카프카의 특징
높은 처리량
•
Producer, Consumer 모두 데이터를 묶어서 전송
•
많은 양의 데이터를 송수신할 때 맺어지는 네트워크 통신은 큰 비용 → 카프카를 통해 비용 절약 가능
◦
동일한 양의 데이터를 최소한의 통신 횟수로 보낼 수 있다.
◦
동일 시간 내 더 많은 데이터를 전송할 수 있다.
•
많은 양의 데이터를 묶음 단위로 처리하는 배치로 빠르게 처리할 수 있기 때문에 대용량의 실시간 로그 데이터를 처리하는데 적합
•
파티션 단위를 통해 동일 목적의 데이터를 여러 파티션에 분배하고 데이터 병렬처리가 가능
◦
파티션 개수만큼 컨슈머 갯수를 늘려 동일 시간당 데이터 처리량을 늘림 → Linear
▪
Partition #1 → Consumer #1
▪
Partition #2 → Consumer #2
확장성
•
데이터 량이 가변적인 환경에서도 안정적인 확장 가능
◦
Broker 갯수를 Scale-out/Scale-in하여 데이터 처리량을 조절 가능
◦
Scale-out/Scale-in은 Cluster의 무중단 운영을 지원하므로 365일 24시간 데이터를 처리해야하는 비즈니스 모델에서도 안정적인 운영 가능
영속성
•
데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성
•
데이터를 파일 시스템에 저장
◦
페이지 캐시 메모리 영역을 메모리에 별도 생성하여 사용
◦
높은 처리량
고가용성
•
3개 이상의 서버들로 운영
◦
일부 서버에 장애가 발생하더라도 무중단으로 안전하고 지속적으로 데이터 처리 가능
•
Cluster로 이루어진 카프카는 데이터의 복제를 통해 고가용성의 특징을 가짐
◦
프로듀서로 전송받은 데이터를 여러 브로커 중 하나의 브로커에저장하는 것이 아닌 또 다른 브로커에도 저장
•
한 브로커에 장애가 발생하더라도 복제된 데이터가 나머지 브로커에 저장되어 있으므로 저장된 데이터를 기준으로 지속적으로 데이터 처리 가능
•