Kafka(3)
-
Reactor Kafka
Project Reactor란Project Reactor란 Java 환경에서 비동기 application을 만들기 위한 reactive library입니다. Reactor는 java에서 비동기를 위해 제공하는 Flux와 Mono를 활용하고 있습니다. 이를 통해 메모리를 효율적으로 사용하고 불필요한 buffering이나 blocking을 방지합니다.Reactor KafkaReactor Kafka는 앞서 설명한 Project Reactor를 활용한 Kafka의 reactive library입니다. Project Reactor를 활용해서 Kafka의 메시지 송수신을 비동기로 처리할 수 있게 합니다.Reactor Kafka 특징Kafka를 위한 Functional InterfaceReactor Kafka는 Ja..
00:36:55 -
Kafka가 빠른 이유
Sequential I/O일반적으로 RAM은 랜덤 액세스를 지원히자만, 디스크는 데이터가 위치하는 블록을 찾는 시간과 찾은 데이터 블록을 메모리에 카피하는 시간 등의 오버헤드가 존재합니다. 데이터가 RAM에 이미 존재한다면 이 과정은 생략되지만, 그렇지 않다면 page fault가 발생하여 느리게 인식됩니다. 하지만 대용량의 데이터를 처리하는데 그 모든 데이터를 RAM에 올리는 것은 현실적으로 어려움이 많습니다.Kafka는 디스크를 저장소로 사용하는 대신 Sequential I/O를 통해 탐색시간을 최소화합니다. Kafka의 데이터는 consumer가 읽어도 지워지지 않으며, 데이터는 맨 끝에 추가만 됩니다. 이로 인해 Kafka의 데이터는 디스크에 조각으로 나누어지지 않고 연속적인 블록에 저장됩니다. ..
2024.07.25 -
Kafka
1. Apache Kafka란 Apache Kafka란 대용량의 실시간 로그 처리에 특화되어 설계된 메시징 시스템입니다. Kafka는 Pub/Sub 모델을 기반으로 동작하며 크게 producer, consumer, broker로 구성됩니다. 그림으로 표현하면 아래와 같이 나타납니다. Producer: 데이터를 발생시키고 Kafka Cluster에 적재하는 프로세스 Kafka Cluster: 카프카 서버로 이루어진 클러스터 Broker: 카프카 서버 Zookeeper: 분산 코디네이션 시스템으로, Kafka Broker를 하나의 Cluser로 코디네이팅하는 역할을 하며, Cluster의 Leader를 발탁하는 방식을 제공 Topic: Kafka Cluster에 데이터를 관리할 때 그 기준이 되는 개념. T..
2020.05.08