- 카프카는 링크드인, 넷플릭스, 우버 등 수많은 대기업에서 백엔드로 사용하는 신뢰성 높고 확장 가능하며 매우 빠른 메시지 큐 시스템입니다. 🚀
- 카프카는 낮은 레이턴시보다는 대용량 메시지를 한 번에 배치 처리하는 높은 스루풋에 중점을 두어 설계되었습니다. 📈
- 데이터를 항상 순차적으로(append-only) 디스크에 기록하는 시퀀셜 I/O 방식을 사용하여, 랜덤 액세스보다 훨씬 빠른 디스크 읽기/쓰기 성능을 확보합니다. 💾
- 저렴한 HDD를 사용하면서도 대용량 데이터를 효율적으로 저장하고 장기간 보존할 수 있어, 비용 효율적인 메시지 리텐션이 가능합니다. 💰
- 네트워크와 디스크 간의 불필요한 데이터 복사 횟수를 줄이는 제로 카피(Zero-Copy) 원칙을 적용하여, 데이터 전송 속도를 획기적으로 향상시킵니다. ✂️
- CPU 개입 없이 NIC가 직접 메모리에서 데이터를 복사하는 DMA(Direct Memory Access)를 통해 제로 카피를 구현하여, 성능 병목 현상을 줄입니다. 🧠
- 컨슈머가 원하는 시점에 원하는 속도로 데이터를 가져가는 풀(Pull) 기반 시스템으로, 서버 과부하를 줄이고 효율적인 데이터 소비 및 스케일 아웃을 용이하게 합니다. 🎣
- 풀 기반 시스템은 메시지를 디스크에 오래 저장해야 하는 전제 조건을 필요로 하며, 이는 카프카의 시퀀셜 I/O와 저렴한 HDD 활용 전략과 시너지를 이룹니다. 🕰️
- 결론적으로 카프카의 빠른 속도는 시퀀셜 I/O, 제로 카피, 풀 기반 동작이라는 세 가지 핵심 설계 원칙 덕분입니다. ✨
데브허브 | DEVHUB | 남자라면 Kafka