개인 저장용 블로그

Kafka - Introduction (1) 본문

오픈소스/Apache Kafka

Kafka - Introduction (1)

우엉잇 2022. 7. 4. 12:29
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