보다 큰 규모의 데이터를 모으고, 처리하고, 저장하고 받아서 전달하는 이벤트 스트리밍 플랫폼.
데이터를 받아서 전달하는 데이터 버스 역할을 한다. 즉, 대량의 데이터를 분산 관리해주는 미들웨어이다.
이벤트 스트리밍 : ???
데이터 스트리밍 : ???
미들웨어 : 운영 체제에서 제공하지 않는 일반적인 서비스와 기능을 애플리케이션에 제공하는 소프트웨어.
이벤트 : 소프트웨어 또는 응용 프로그램에서 식별하거나 기록 하는 모든 유형의 작업, 사건 또는 변경 사항.
높은 처리량, 빠른 응답 속도, 안정성
카프카를 사용하는 대표적인 이유는 위의 세 가지를 보장해주기 때문이다.
이를 보장해주는 구체적인 카프카의 핵심 개념은 아래와 같다.
Kafka의 핵심 개념과 연관 되며, 이는 곧 기업에서 사용할만한 충분한 이유가 된다.
프로듀서 -> 카프카(Broker) -> 컨슈머
이와 같은 흐름을 가진다. 화살표는 메시지가 흐르는 방향.
주키퍼는 카프카의 정상 동작을 보장하기 위해 메타데이터를 관리하는 코디네이터이다.
클러스터는 브로커로 구성 되며, 브로커 안에는 토픽이 존재한다.
토픽은 파티션으로 구성된다. 파티션은 세그먼트 형태로 파티션에 저장된다. xxx.log와 같은 파일로 hexdump에 저장된다.
linux 명령어인 xxd를 이용하여 파일을 볼 수 있다. 저장 경로는 브로커 속성 중 하나인 log.dirs이다.
즉, 프로듀서에 의해 브로커로 전송된 메시지는 토픽의 파티션에 저장되며, 각 메시지들은 세그먼트라는 로그 파일 형태로 브로커의 로컬 디스크에 저장된다.
https://www.knowledgenile.com/blogs/confluent-kafka-vs-apache-kafka/
출처) 실전 카프카 개발부터 운영까지 (고승범 저)