프로젝트 리액터 카프카 공식 레퍼런스를 한글로 번역한 문서입니다.
전체 목차는 여기에 있습니다.
목차
1.1. Apache Kafka
카프카는 확장 가능한, 고성능 분산 메세지 처리 엔진이다. 짧은 지연 시간, 높은 처리량을 자랑하는 메세징 기능에 내결함성을 더해, 카프카는 대중적인 메세지 서비스이자, 실시간 이벤트 스트림 처리를 위한 강력한 스트리밍 플랫폼으로 자리 잡았다.
아파치 카프카는 세 가지 핵심 API를 제공한다:
- 카프카 토픽에 메세지를 발행하고, 카프카 토픽에 있는 메세지를 컨슘하는 프로듀서/컨슈머 API
- 기존 스토리지 데이터를 받아(pull) 카프카로 전달하거나, 카프카 토픽 데이터를 다른 시스템으로 전달(push)할 수 있는 커넥터 API
- 카프카에 발행한 실시간 이벤트 스트림을 변환하고 분석할 수 있는 스트림즈 API
1.2. Project Reactor
리액터는 리액티브 스트림 스펙을 구현한 리액티브 라이브러리로, 효율적인 논블로킹 JVM 어플리케이션 구현에 최적화돼 있다. 리액터 기반 어플리케이션은 적은 메모리로도 매우 높은 메세지 처리율을 유지하기 때문에, 마이크로 서비스 아키텍처를 적용한 이벤트 기반 어플리케이션에도 적합하다.
리액터는 Flux, Mono라는 두 가지 publisher를 구현하며, 둘 모두 논블로킹 back-pressure를 지원한다. 스레드 간의 메모리 사용량을 잘 정의해서 데이터를 교환할 수 있으므로, 불필요한 중간 버퍼링이나 블로킹을 피할 수 있다.
1.3. Reactive API for Kafka
리액터 카프카는 카프카용 리액티브 API로, 내부에선 리액터와 카프카 프로듀서/컨슈머 API를 사용한다. 리액터 카프카 API를 사용하면, 적은 오버 헤드로 논블로킹 back-pressure를 지원하는 함수형 API로 카프카에 메세지를 발행하고 카프카 메세지를 컨슘할 수 있다. 덕분에 리액터를 사용하는 어플리케이션은 카프카를 메세지 버스나 스트리밍 플랫폼으로 사용하고, 다른 시스템과 통합해 end-to-end 리액티브 파이프라인을 제공할 수 있다.
Next :Motivation
리액터 카프카가 주는 차별점, 기존 카프카 API와 다른 점, 그리고 언제 리액터 카프카를 사용해야 하는 지를 설명합니다.
전체 목차는 여기에 있습니다.