🏎 카프카는 왜 빠를까?

이벤트 기반 아키텍쳐를 구성하기 위해서는 중심이 되는 메시징 서비스가 필요하고

보통 kafka, rabbitmq, redis (pub/sub) 등의 솔루션을 도입하게 됩니다.


그 중 kafka 는 GC 로 인해 지연이 발생할 수 있는 JVM 기반으로 동작함에도 불구하고

VM 장비에서도 꽤 괜찮은 처리량을 보여줍니다.


이에 대한 궁금증을 순차적으로 알아가 볼 수 있는 좋은 글이 있어 공유드립니다.

글에서 정리한 Kafka 가 빠른 이유는 다음과 같습니다.


📌 저지연 I/O 사용

전송받은 메시지는 RAM을 사용하여 지연 시간을 낮추고, DISK를 최소한으로 사용.


📌 순차적 I/O 자료구조 사용 (log)

메시지 추가는 끝단에서 이뤄지고, 메시지 읽기는 consumer 마다 별도의 포인터를 두어 탐색 시간을 피하는 'log' 라는 데이터 구조 사용.


📌 zero-copy 적용

어플 영역의 데이터를 복사하는 과정없이 커널에 직접 전달하여 효율을 높임.


📌 수평 확장 시스템

단일 주제에 대해 여러 소비자로 분산 가능한 시스템.


📌 데이터 압축 및 일괄 처리

데이터를 묶음 단위로 관리하여 전송/관리 효율을 높이고, 이를 압축하여 보관/전송하는 구조.


특히 다른것보다 zero-copy 에 대해 꽤나 깊고 자세하게 설명하고 있는데요

자세한 설명과 벤치마크를 다룬 아티클들을 중간중간 첨부하여 읽는 재미가 있었습니다.


이에 대한 자세한 내용은 첨부드린 원문 링크를 참고해주세요.


📚 원문

  • https://frogred8.github.io/docs/034_why_is_kafka_fast/


[java] 카프카는 왜 빠를까?

frogred8

[java] 카프카는 왜 빠를까?

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 5월 28일 오전 6:35

 • 

저장 123조회 5,352

댓글 0

    함께 읽은 게시물

    예스24 실시간 종베 1위 《요즘 바이브 코딩 클로드 코드 완벽 가이드》

    ... 더 보기

    조회 112


    사이드 프로젝트, 진짜 재미는 후반전에 있다

    며칠 전, 우아한형제들 임동준 님의 유튜브 영상을 보다 마음에 들어오는 메시지를 들었다. 영상은 AI에 대한 이야기였지만, 그 과정에서 나온 이 조언이 더 깊게 남았다.

    ... 더 보기

     • 

    저장 11 • 조회 893


    최근에 코딩 IDE와 AI 에이전트들이 우후죽순 출시되면서, AI에게 프로젝트에 대한 중요한 정보와 규칙들을 알려주기 위한 방식들도 난립하고 있었는데요. 이것들이 이제 AGENTS.md 로 통일될 것 같습니다.

    ... 더 보기

    AGENTS.md

    agents.md

    AGENTS.md

    Ensuring 60fps Animations in SwiftUI

    "

    ... 더 보기

    Ensuring 60fps Animations in SwiftUI (GPU Rendering Optimization)

    iOYES

    Ensuring 60fps Animations in SwiftUI (GPU Rendering Optimization)

    디자인패턴, 리팩토링, 클린 아키텍처 등등의 책들은 전공서적 보듯이 보는게 아니라 추리소설 보듯이 보는 것임. 이런 책은 추리소설처럼 일부 논리적으로 사고 할 수 있는 능력을 길러주긴 하지만, 기본적으로는 재미로 보는 것임. 경험적인 정보이지 과학적인 지식이 아님을 명심해야 함.

     • 

    저장 1 • 조회 616


    할수 있는 것과 하지 말아야 하는 것들

    개발을 하다 보면 할 수 있는 일과 하지 말아야 하는 일이 나뉘는것 같아요. 대부분의 일들을 할 수 있는 일들이고, 사실 안되는 일들은 거의 없을 수도 있는거 같아요.

    ... 더 보기