Apache Software Foundation의 Scalar 언어로 된 오픈 소스 메시지 브로커 프로젝트
메시지 브로커 : 특정한 리소스에서 다른 쪽의 리소스 또는 서비스 시스템으로 메시지를 전달하는 사용되는 서버
- 메시지: text, json, xml, Object 데이터 포맷
실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연 시간을 지닌 플랫폼 제공
서로 다른 format을 쓰고 있기에 확장이 어렵다.
Kafka는 모든 시스템으로 데이터를 실시간으로 전송하여 처리 할 수 있는 시스템이자, 데이터가 많아지더라도 확징이 용이한 환경으로 바꿔준다.
포맷
)을 생각하지 않고, kafka 하나를 상대하는 것으로 통일화한다. 즉 누가 보내고 누가 받는지 신경을 안써도 되는 방식으로
실행 된 Kafka 애플리케이션 서버( == kafka broker
)
3대 이상의 Broker Cluster 구성을 권장한다. -> 메시지를 공유하여 하나의 브로커가 이상이 생겼을 때 안정적으로 메시지를 전달할 수 있다.
Zookeeper
n개의 Broker 중 1대는 Controller 기능을 수행한다
카프카 공식 홈페이지 → kafka 다운로드란에서 다운로드
Kafka와 데이터를 주고받기 위해 사용하는 Java Library (Kafka Clinet Library)
Producer, Consumer, Admin, Stream 등 API를 제공한다.
추가적으로 Node.js, Python에서 사용할 때는 -> https://cwiki.apache.org/confluence/display/KAFKA/Clients