728x90
Kafka란?

- 이벤트 스트리밍 플랫폼이다.
Event 란?
Event는 비즈니스에서 일어나는 모든 일(데이터)을 의미한다.
- 웹사이트에서 무언가를 클릭하는 것
- 청구서 발행
- 송금
- 배송 물건의 위치 정보
- 택시의 GPS 좌표
- 센서의 온도/압력 데이터
Event는 BigData의 특징을 가진다.
- 비즈니스의 모든 영역에서 광범위하게 발생
- 대용량의 데이터(Big Data) 발생
- Event Stream은 연속적인 많은 이벤트들의 흐름을 의미
Apache Kafka의 탄생
LinkedIn 내에서 개발되었다.
- 하루 4.5 조 개 이상의 이벤트 스트림 처리
- 하루 3,000 억 개 이상의 사용자 관련 이벤트 스트림 처리
- 기존의 Messaging Platform(예, MQ)로 처리 불가능
- 이벤트 스트림 처리를 위해 개발
- 2011년에 Apache Software Foundation 에 기부되어 오픈소스화
Apache Kafka의 특징

- 이벤트 스트림을 안전하게 전송한다(Publish/ Subscribe)
- 이벤트 스트림을 디스크에 저장한다.
- 기존 솔루션과 가장 큰 차이가 나는 특징이다.
- 이벤트 스트림을 분석 및 처리한다.
Apache Kafka 사용 사례
Event(메시지/데이터)가 사용되는 모든 곳에서 사용된다.
- Messaging System
- IOT 디바이스로부터 데이터 수집
- 애플리케이션에서 발생하는 로그 수집
- Realtime Event Stream Processing (Fraud Detection, 이상 감지 등)
- DB 동기화 (MSA 기반의 분리된 DB간 동기화)
- 실시간 ETL
- Spark, Flink, Storm, Hadoop 과 같은 빅데이터 기술과 같이 사용
Apache Kafka의 성능
Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines)
I wrote a blog post about how LinkedIn uses Apache Kafka as a central publish-subscribe log for integrating data between applications, stream processing, and Hadoop data ingestion. To actually make this work, though, this "universal log" has to be a cheap
engineering.linkedin.com
- 컴퓨터 사항
- Intel Xeon 2.5 GHz processor(6 코어)
- 7200 RPM SATA 드라이버 6 개 : RAID 아닌 JBOD 로 구성 o 32 GB of RAM
- 1 Gb Ethernet
- 상기 스펙의 총 6 대 HW 사용 3대 ‒ Zookeeper/Load Generator, 3 대 ‒ Kafka Broker
- 결과: 2,024,032 records/sec (193.0 MB/sec)


- Kafka의 성능이 월등히 높은 걸 알 수 있다.
- RabbitMQ가 낮은 이유는 동일한 데이터를 기준으로 하면 그래프가 너무 높게 나와 적은 양을 데이터로 테스트를 진행했기 때문이다.
728x90
'Kafka 완전 정복 : 클러스터 구축부터 MSA 환경 활용까지 > 기본,심화 개념, 아키텍처와 생태계' 카테고리의 다른 글
| Ch01. Apache Kafka 기본 개념 및 이해 - Replication (0) | 2023.03.29 |
|---|---|
| Ch01. Apache Kafka 기본 개념 및 이해 - Consume (0) | 2023.03.28 |
| Ch01. Apache Kafka 기본 개념 및 이해 - Producer (0) | 2023.03.28 |
| Ch01. Apache Kafka 기본 개념 및 이해 - Broker, Zookeeper (0) | 2023.03.20 |
| Ch01. Apache Kafka 기본 개념 및 이해 - Topic, Partition, Segment (0) | 2023.03.19 |