카프카는 왜 빠를까?
카프카는 적은 시간에 많은 데이터를 처리할 수 있도록 최적화되어 있다.
어떤 시스템 디자인 덕분에 카프카가 대량의 데이터를 처리할 수 있는 걸까?
대표적인 2가지 특징을 알아보자.
1) Kafka’s reliance on sequential I/O
디스크의 데이터 접근 방식에는 2가지가 있다.
- Random
- Sequential
Sequential의 경우 디스크에서 데이터를 읽을 때 바로 옆의 데이터로 순차적으로 읽기 때문에 Random 방식보다 빠르다.
카프카는 append-only log를 통해 Sequential 하게 데이터를 처리한다.
두 접근 방식의 성능을 간략히 비교하면
Random 방식은 100KB/s, Sequential 방식은 100MB/s으로 큰 차이가 난다.
이를 통해 카프카는 디스크를 사용하기에 비용은 적게, 용량은 많이 처리하면서도 빠른 성능을 보인다.
2) Zero copy principle
카프카는 disk와 network 사이의 통신에서 zero copy pinciple을 지킨다.
불필요한 데이터 복사를 최소화함으로써 더 나은 성능을 보인다.
참고)
https://www.youtube.com/watch?v=UNUz1-msbOM
'소프트웨어 개발' 카테고리의 다른 글
QR 코드를 통한 결제는 어떻게 동작할까? (0) | 2024.02.21 |
---|---|
DB에 패스워드는 어떻게 저장하고 관리할까? (0) | 2024.02.20 |
[Redis] 레디스의 주요 명령어에 대해 간단히 알아보자 (0) | 2024.02.18 |
[Redis] 레디스의 특징에 대해 간단히 알아보자 (0) | 2024.02.17 |
웹 브라우저에 URL을 입력하면 어떤 일이 일어날까? (0) | 2024.02.16 |