분산 스트리밍 플랫폼.대용량의 실시간 로그 처리에 특화되어 있는 솔루션이며, 데이터 유실없이 안전하게 전달하는 것이 주목적인 MQ 메시지 시스템에서 Fault-Tolerant(장애 허용)한 안정적인 아키텍처와 빠른 퍼포먼스로 데이터를 처리 가능.
Publisher Subscriber 모델 : 데이터 큐를 중간에 두고 서로 간 독립적으로 데이터를 생산하고 소비. Publisher나 Subscriber가 죽을 시, 서로 간에 의존성이 없으므로 안정적으로 데이터를 처리할 수 있음. 또한 설정 역시 간단하게 할 수 있다는 장점.
고가용성 및 확장성 : 카프카는 클러스터로서 작동. 그러므로 Fault-tolerant (장애 허용)한 고가용성 서비스를 제공할 수 있고, 분산 처리를 통해 빠른 데이터 처리를 가능하게 함. 또한, 서버를 수평적으로 늘려 안정성 및 성능을 향상시키는 Scale-out이 가능.
디스크 순차 저장 및 처리 : 메시지를 메모리 큐에 적재하는 기존 메시지 시스템과 다르게 디스크에 순차적으로 저장.
장점 1.
서버에 장애가 나도 메시지가 디스크에 저장되어 있으므로 유실 걱정 X
장점 2.
디스크가 순차적으로 저장되어 있으므로 디스크 I/O가 줄어들어 성능이 빨라짐.
분산 처리 : 카프카는 파티션이란 개념을 도입하여 여러개의 파티션을 서버들에 분산시켜 나누어 처리할 수 있음. 이로서 메시지를 상황에 맞춰 빠르게 처리 가능.
카프카 클러스터를 중심으로 프로듀서와 컨슈머가 데이터를 push하고 pull 하는 구조.
Producer, Consumer는 각기 다른 프로세스에서 비동기로 동작하고 있음.