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