# kafka는 왜 빠를까?

> Clean Markdown view of GeekNews topic #14890. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=14890](https://news.hada.io/topic?id=14890)
- GeekNews Markdown: [https://news.hada.io/topic/14890.md](https://news.hada.io/topic/14890.md)
- Type: news
- Author: [frogred8](https://news.hada.io/@frogred8)
- Published: 2024-05-19T11:29:19+09:00
- Updated: 2024-05-19T11:29:19+09:00
- Original source: [frogred8.github.io](https://frogred8.github.io/docs/034_why_is_kafka_fast)
- Points: 23
- Comments: 2

## Topic Body

- 카프카가 빠른 일반적 이유  
  - 저지연 I/O 사용 (ram)  
  - 순차적 I/O 자료구조 사용 (log)  
  - zero-copy 적용  
  - 수평 확장 시스템  
  - 데이터 압축 및 일괄 처리  
- zero-copy란?  
  - file을 socket으로 복사할 때 발생하는 부하를 개선한 os 지원 인터페이스  
  - linux에서는 sendfile 명령  
- 그래서 kafka는 어떻게 zero-copy로 인해 빨라졌는가?  
  - java에서 nio패키지에 transferTo 함수가 추가됨  
  - 이를 사용하여 kafka는 메시지를 유저 영역으로 가져오지 않고, 커널 영역에서 네트워크로 바로 전송하여 속도에 많은 이점을 가짐  
  - 기존 방식과 transferTo를 사용한 방식의 성능 측정 시 후자가 65% 더 빠른 결과를 보여줌

## Comments



### Comment 25371

- Author: vwjdalsgkv
- Created: 2024-05-19T13:52:20+09:00
- Points: 5

본문상 내용중 nio를 살짝 헷갈리신것같은데 nio는 non blocking io가 아니라 new io입니다. block이랑 non block 모두 지원해요

### Comment 25372

- Author: frogred8
- Created: 2024-05-19T14:24:19+09:00
- Points: 2
- Parent comment: 25371
- Depth: 1

일부 문서에서는 non-blocking io의 약자라고 되어있어서 잘못 알고 있었네요. 피드백 감사합니다.
