Kafka란
Kafka는 TCP 네트워크 프로토콜을 통해 통신하는 서버와 클라이언트로 구성된 분산 시스템입니다. 하드웨어, 가상 머신, on-premise 및 클라우드 환경의 컨테이너에 배포 할 수 있고, 세 가지의 주요 기능을 결합하여, end to event streaming을 구현 합니다.
Kafka 주요 기능
1. 다른 시스템에서 데이터를 지속적으로 가져오기/내보내기를 포함하여 이벤트 스트림을 publish(write) 및 subscribe(read) 합니다.
2. 이벤트 스트림을 원하는 만큼 내구성 있고 안정적으로 store(저장) 합니다.
3. 이벤트 스트림을 발생 시 또는 소급하여 process(처리) 합니다.
Kafka 주요 단어
Server
Kafka는 하나 이상의 서버 클러스터로 실행 됩니다. 이러한 서버 중 일부는 브로커라고 하는 스토리지 계층을 형성합니다. 다른 서버는 Kafaka Connect를 실행하여 이벤트 스트림으로 데이터를 지속적으로 가져오고 내보내고 Kafka를 관계형 데이터 베이스 및 기타 Kafka 클러스터와 같은 기존 시스템과 통합합니다. 서버 중 하나에 장애가 발생하면 다른 서버가 작업을 인계받아 데이터 손실 없이 지속적인 운영을 보장합니다.
Client
네트워크 문제나 시스템 오류가 발생 한 경우에도 이벤트 스트림을 사용하여 분산 애플리케이션 및 마이크로 서비스를 작성 할 수 있습니다. Kafka 커뮤니티에서 제공하는 수십 개의 클라이언트로 보강된 일부 클라이언트와 함께 제공 됩니다. (https://cwiki.apache.org/confluence/display/KAFKA/Clients)
Event
해당 비지니스에 "무언가 발생" 했다는 사실을 기록합니다. 문서에서는 기록 또는 메시지라고 합니다. Kafka에서 데이터를 읽거나 쓸 때 이벤트 형식으로 이 작업을 수행 합니다. 개념적으로 이벤트에는 key, value, timestamp 및 optional metadata header 가 있습니다.
example record
* Event key : "Alice"
* Event value : "Made a payment of $200 to Bob"
* Event timestamp : "Jun. 25, 2020 at 2:06 p.m"
Producers
이벤트를 게시하는 클라이언트 응용 프로그램
Consumers
event를 구독(읽기 및 처리) 하는 응용 프로그램
참고 사이트
https://kafka.apache.org/intro#intro_nutshell