위키득계정 ↗
기술

Apache Kafka

Apache Kafka기술
시스템 유형
분산 사건 스트리밍 플랫폼
자료 묶음
Topic
분산 단위
Partition
클라이언트 역할
Producer와 Consumer
Apache Kafka는 사건 스트림을 발행하고 구독하며 저장하고 처리하는 분산 플랫폼이다. 생산자가 기록한 사건을 토픽에 보관하고 소비자가 필요에 따라 읽도록 연결한다.

생산과 소비의 분리

생산자는 사건을 쓰고 소비자는 구독한 사건을 읽어 처리한다. 서로의 실행을 직접 제어하지 않고 토픽을 사이에 두고 연결된다. 보관 기간을 설정할 수 있으며 소비자가 읽었다는 이유만으로 사건이 바로 삭제되지는 않는다.

파티션과 순서

토픽은 여러 파티션으로 나뉘어 브로커에 배치된다. 사건은 한 파티션의 뒤에 추가되며 그 파티션 안에서는 기록된 순서로 읽는다. 순서 보장의 범위는 토픽 전체가 아니라 개별 파티션이다.

저장과 처리 도구의 연결

토픽의 파티션을 복제해 여러 브로커에 자료를 보관할 수 있다. Kafka Connect는 외부 시스템과 자료를 주고받는 커넥터를 연결하고 Kafka Streams는 스트림의 변환과 상태 기반 처리 응용을 작성하는 라이브러리다.

관련 문서

Apache Samza / Apache Flink / Apache Beam / CloudEvents / AsyncAPI / 프로토콜 버퍼