성장을 꾸준히 기록하는 공간

고정 헤더 영역

글 제목

메뉴 레이어

성장을 꾸준히 기록하는 공간

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (108)
    • tech (28)
    • spring (14)
    • mysql (8)
    • kubernetes (12)
    • kafka (12)
    • windows (6)
    • project (26)
      • wargame (12)
      • resistance (5)
      • SIEMple (6)
      • Witch's Tower (3)

검색 레이어

성장을 꾸준히 기록하는 공간

검색 영역

컨텐츠 검색

kafka

  • Proactor 기반 게임서버에서 Kafka를 IO Completion Port와 통합하기

    2025.09.11 by downfa11

  • 실시간 처리시 ReactiveKafka의 메시지 소비 지연 현상에 대해 알아보자

    2025.06.13 by downfa11

  • 프로젝트에 Apache Kafka 도입이 오버 엔지니어링인지 판단해보자 (feat. Kafka Benchmark)

    2025.03.21 by downfa11

  • Kafka 원리를 이용한 메시지 브로커를 직접 구현해보자

    2024.12.21 by downfa11

  • Kafka의 내부 원리를 공부하기 위한 토이프로젝트

    2024.12.21 by downfa11

  • Kafka는 고가용성을 어떻게 유지하는지 알아보자

    2024.12.17 by downfa11

  • Kafka가 대용량 트래픽에 뛰어난 성능을 보이는 이유

    2024.11.21 by downfa11

  • 동물원을 탈출한 Kafka를 잡아왔습니다

    2024.11.21 by downfa11

Proactor 기반 게임서버에서 Kafka를 IO Completion Port와 통합하기

Reactor 환경에서는 Spring WebFlux와 Reactor-Kafka를 활용해 Kafka 메시지를 Flux 스트림으로 자연스럽게 처리하는 것이 익숙하다. 하지만 Proactor 환경에서는 Kafka를 어떻게 처리할까? 이번 글에서는 C++ 게임 서버에서 Kafka Consumer를 IOCP 이벤트 루프에 통합했던 경험을 공유한다. 1. OS가 어디까지 처리하는지에 따라서 구분한다.데이터가 소켓 버퍼에 수신되면 OS가 수신 이벤트를 전달(reactor)하거나, 나아가서 OS가 직접 IO 작업까지 하고 완료 결과를 통보(proactor)하여서 비동기적으로 IO 멀티플렉싱을 진행한다. 쉽게 설명해서 IO 멀티플렉싱은 읽을 데이터가 왔을때 작업하는 Reactor와 실제 작업이 완료되면 통보받는 Pro..

kafka 2025. 9. 11. 19:20

실시간 처리시 ReactiveKafka의 메시지 소비 지연 현상에 대해 알아보자

ReactiveKafkaSpring 환경에서 Kafka 사용이 편해졌다. 마치 WebMVC에서 Request 패턴처럼 사용하고, Partition을 나눠서 병렬 처리로 동시성 문제를 해결할 수 있다. Streaming 플랫폼의 본질Producer → stream 형태로 publish, subscribe → Consumer Reactive의 본질은 대상을 Async하게 다루는거고, 이를 Stream 형태(Flux)로 비동기 처리한다. ReactiveKafka 사용시 생기는 메시지 소비의 지연 현상을 알아보자ReactiveKafkaConsumerTemplate 자체가 Lazy하게 동작한다.Kafka 클라이언트 설계상, receive()가 호출되기 전까지 내부적으로 KafkaReceiver가 구동하지 않는다...

kafka 2025. 6. 13. 15:28

프로젝트에 Apache Kafka 도입이 오버 엔지니어링인지 판단해보자 (feat. Kafka Benchmark)

캡스톤 아이디어 회의때, 다른 학생이 지역 기반의 소개팅 만남 앱, 커뮤니티 등에서 kafka, redis, kubernetes.. 온갖 화려한 기술들로 점철된 계획서를 들고 왔다. 아이디어보단 백엔드 기술에 치중한 계획서를 인공지능 교수님께 내는게 맞는지는 차차하고, 써본적은 없어서 어떤 기술인지는 모르지만 대규모 트래픽 처리에 쓰이니 써보고 싶다고 한다.  기술은 도구일뿐, 비즈니스가 우선시되어야한다.  기술 도입시 가져야할 마음가짐은 '굳이?'라고 생각한다. 기존 방식에서 기교를 통해 해결하는 것도 실력이 아닐까 공부하고 도입해보려는 시도는 좋지만.. 남 일인데도 걱정이 앞선다. 이번 포스트를 작성한 이유다.  본인의 프로젝트에 Apache Kafka 도입을 고민하는 당신. 오버 엔지니어링은 염두해..

kafka 2025. 3. 21. 00:56

Kafka 원리를 이용한 메시지 브로커를 직접 구현해보자

일단 큐잉을 통한 메시지 브로커부터 만들어보고.. 목표는 분산 처리하는 이벤트 브로커 구현Cpp 뿐만 아니라 Java, Python 클라이언트까지 개발할 생각이다.  Broker를 중앙에서 관리해야하는가? 아니면 Kafka처럼 브로커를 독립 실행형으로 구현해야하는가? 젠장 중앙에서 메타데이터를 관리할 Zookeeper나 KRaft 역할을 할 녀석도 만들어야한다..→ 일단 중앙 서버에서 관리하도록 하겠음  이벤트 브로커의 Server서버 실행시 명령어를 통해 원하는 개수의 브로커를 생성할 수 있다. CREATE_BROKER : 자체적으로 brokerId를 발급하고 Metadata를 인자로 주입한다.내부 구성은 크게 3가지 영역으로 구분했다. 1. metadata : broker나 cluster의 메타데..

kafka 2024. 12. 21. 16:57

Kafka의 내부 원리를 공부하기 위한 토이프로젝트

시도는 충분히 아름답다ㅎ   kafka는 scalar와 java로 만들어서 jvm 위에서 동작한다던데, 성능적인 요인을 따라 잡기 위한 zero copy나 Sequential IO 같은게 될지는 모르겠다. 아직은 Kafka의 내부 원리를 공부하는 단계이다.   1. hello 라는 토픽에 'hello world!' 문자열을 Produce한다.해당 토픽에 컨슈머 그룹에 적용되지 않으면 자동으로 default라는 그룹에 속한다. 2. news 라는 토픽에 'this is consumed' 문자열을 Produce한다.main.cpp에서 이미 news 토픽을 구독하는 Consumer를 생성했고, 'group1' 이라는 컨슈머 그룹에 등록시켰다. 3. 따라서 성공적으로 소비한 뒤, Consumed message를..

kafka 2024. 12. 21. 16:41

Kafka는 고가용성을 어떻게 유지하는지 알아보자

수많은 Topic의 설정들.. 성능과 가용성에서 엄청난 차이를 만드는 카프카 엔지니어들의 영역이다.​어줍잖게 카프카쓸거면 RabbitMQ로 구현하라는 말은 엔지니어라는 전문 인력이 필요할만큼 어렵고 그 갭이 심하다는 소리이다.​너무 내 식대로 풀어서 메모했던 내용을 토대로 작성한 게시글이라 비난없이 귀엽게 봐주면 된다.​​kafka cluster의 일부가 장애 상황에 빠지더라도 전체 시스템에 영향을 주지 않고 계속 작동할 수 있도록 해주는 Partition, RF, ISR 에 대해 알아보자​​Partition topic은 1개 이상의 파티션으로 이루어진다.​하나의 topic에 포함된 메시지들을 물리적으로 분리해서 저장하는 저장소​하나의 메세지가 하나의 파티션에 들어가는 형태 (Not Sharding, P..

kafka 2024. 12. 17. 14:23

Kafka가 대용량 트래픽에 뛰어난 성능을 보이는 이유

Kafka가 메시징 애플리케이션을 넘어서 이벤트 스트리밍 플랫폼으로 군림할 수 있었던 이유가 뭘까? 그야말로 신강을 넘어 중원 무림을 점령해버린 천마.. 통상적인 인식으로, Apache Kafka에 따라오는 키워드는 확장성, 고성능과 높은 처리량이다.  분산 메시징 시스템으로 처리량이 높은건 건 알겠는데, Redis와 다르게 Kafka는 데이터를 Broker의 disk에 저장한다.​ disk I/O 비용이 상당히 큰 출혈인데, 얜 도대체 왜 빠른거지????????????? 왜빠른데요?왜Kafka는신이죠?왜다들이거에목메는거죠?왜성능이좋은건데요?전문엔지니어가필요한데도왜다들공부하는건데요??? ​순차적 I/O(Sequential I/O)disk 접근은 어떻게 사용하는지에 따라 느릴수도 있고 빠를 수도 있다.순차..

kafka 2024. 11. 21. 16:15

동물원을 탈출한 Kafka를 잡아왔습니다

https://downfa11.tistory.com/32 동물원을 탈출한 Kafka를 찾습니다부제 : Kafka에서 이제 Zookeeper가 필요 없어졌다고...???​네?????/​​Apache Kafka 2.8.0 출시 이후로 Zookeeper에 대한 의존성이 점차 제거되고 있다.​다만 3.3.1 릴리즈부터 시작해서 4.0 부터 Zookeeper가 제downfa11.tistory.com  이전 '동물원을 탈출한 Kafka를 찾습니다' 게시글에서 이어지는 글​​​왜 Apache Kafka일까?높은 처리량순차 접근 (Sequential I/O)디스크에 연속적으로 데이터를 쓰고 읽는 방식write : 랜덤 접근하는 기존 방식과 다르게, Kafka는 디스크에 시간 순서대로(순차적) 데이터를 기록read : ..

kafka 2024. 11. 21. 15:56

추가 정보

인기글

최신글

페이징

이전
1 2
다음
TISTORY
성장을 꾸준히 기록하는 공간 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바