본문 바로가기
반응형

DATA/Kafka7

[공유] 신뢰성 있는 카프카 애플리케이션을 만드는 3가지 방법 (최원영 Cory) [2023.09.14. 제3회 Kakao Tech Meet 발표] 이벤트 드리븐 아키텍처와 스트림 데이터 파이프라인을 만들때 고민해야 하는 부분을 다룹니다. 프로듀서/컨슈머와 같은 카프카 애플리케이션의 전달 신뢰도를 높이기 위해서 적용할 수 있는 기술들에 대해 설명하고 내부적으로 적용했던 경험을 공유합니다.  메시지 전달 신뢰성-> 정확히 한번, 적어도 한번, 최대 한번프로듀서는 브로커에 레코더를 보내고 컨슈머가 브로커를 통해 레코드를 가져간다.신뢰성 있는 카프카를 만드는 3가지 방법 방법1) 멱등성 프로듀서 Idempotence producer프로듀서가 보내는 데이터 중복 적재를 막기 위해 enable.idempotencs 옵션을 제공한다. 3.0부터는 기본값이 true로 설정된다.기본 프로듀서와 달리.. 2024. 11. 2.
Kafka KRaft zookeeper어떤 브로커가 특정 파티션 및 토픽의 리더인지 결정하고 저장하는 역할토픽 추가 or 삭제, 브로커 추가 or 삭제 등 변경 사항이 발생하면 kafka에게 알려준다.단점 : kafka 자체가 아닌 외부에서 관리해야 하기 때문에 kafka 확장에 제한이 된다. (데이터 중복, 브로커와 zookeeper의 메타데이터 불일치, 시스템 복잠성 증가 등)  최신 버전 kafka는 zookeeper를 사용하는 대신 KRaft를 사용할 수 있다.kafka 내부에서 동작하며 kafka의 일부이기 때문에 관리 비용이 줄어든다.zookeeper 사용보다 확장성이 10배 이상 좋아지고, 배포와 운영이 더 쉬워진다고 한다. Controller Quorum의 장점zookeeper의 파티션 상한은 2000000개 .. 2024. 10. 27.
큐 vs 로그 기반 메시징 시스템 https://maily.so/devpill/posts/c2f8ba57 큐 vs 로그 기반 메시징 시스템: 당신의 선택은?실시간 데이터 처리를 위한 최적의 메시징 시스템 선택을 위한 필수 가이드maily.so 목표: 실시간 데이터의 높은 볼륨을 비동기식으로 처리하기 위해 시스템에서 메시지를 버퍼링하는 것 큐기반 메시징선입선출 방식 데이터처리N개의 생산자가 큐에 데이터를 pushN개의 소비자가 비동기로 큐에서 데이터를 읽는다큐를 더 높은 레벨의 스케일로 확장하는 법 -> pubsub : 소비자가 각각의 큐에서 동일한 메시지를 읽을 수 있도록 함 2024. 8. 19.
[공유] Kafka에서 파티션 증가 없이 동시 처리량을 늘리는 방법 - Parallel Consumer 네이버 D2 블로그 글을 읽고 공유합니다.https://d2.naver.com/helloworld/7181840  카프카에서 파티션별 단일 컨슈머 스레드가 할당되는 구조이기 때문에 메시지 동시 처리량을 늘릴 수 있는 가장 쉬운 방법 중 하나는 파티션을 증가시키는 것입니다.다만 파티션 수를 한번 늘리면 줄일 수 없다고 합니다.  파티션을 늘리는 단점브로커 파일 (데이터정보, 메터정보) 시스템 리소스 사용량 증가단일 브로커에 파티션 리더가 더 많이 배치되기 때문에 브로커 노드 장애 혹은 재시작으로 영향받는 범위가 넓다.파티션 단위로 설정된 레플리카 수만큼 복제되므로 디스크 사용량, latency가 증가한다. 네이버에서 카프카를 활용하여 로그 관리 시스템을 운영하는데 방대한 양의 로그를 빠르게 처리하려고 파티.. 2023. 12. 26.
Redis Kafka 활용방법 패스트캠퍼스 강의 - Part 10. Redis, Kafka를 활용한 대용량 데이터 처리 프로젝트 마이크로서비스 구조의 서비스의 장점 - 서비스의 잦은 변경으로 인한 배포 - 모듈별로 적절한 배포 전략을 세울 수 있으므로 risk가 적다. - 기능별 유연한 scailing: 트래픽을 많이 받는 서비스에 대해서만 수평적 확장을 통해 사용성을 개선 - 여러 코드 언어 사용이 가능하다. - 기간이 한정돼있고, 빠른 반환이 필요할 때 사용한다. 1 장바구니: 로그인과 동시에 캐싱되거나 비로그인 시 임시로 저장 2 temporary user 정보: 로그인과 동시에 캐싱되는 정보 3 할인정보 4 쿠폰정보 5 배송정보 6 토큰정보, 세션정보: 로그인시 로그인 상태 유지를 위함 7 광고: 유저별, 상품별, 셀러별 8 .. 2023. 8. 4.
메시징 미들웨어 Kafka, RabbitMQ 메시지 큐 MQ : 메시지 지향 미들웨어(MOM)를 구현한 시스템 비동기 - Queue라는 임시저장소가 있기 때문에 나중에 처리 가능 탄력성 - consumer 서비스가 다운되더라도 메시지는 MQ에 남아 있다. 보장성 - MQ에 들어가면 모든 메시지는 consumer 서비스에 전달된다는 보장이 있다. producer (publisher): 정보를 제공하는 자 consumer (subscriber): 정보를 제공받아 사용하는 자 Queue: producer의 데이터를 임시 저장 및 consumer에 제공하는 곳 Kafka 대용량 분산 로그 트래픽을 실시간으로 처리 가능하다. 안정적으로 운영이 가능하다. kafka에서 발생한 모든 로그를 ES에 메시지 저장이 가능하다. 메시지의 생성, 소비, 관리를 독립시킨.. 2022. 6. 12.
아파치 카프카 Kafka 란? Apache Kafka: Distributed Event Streaming Platform 분산 이벤트 스트리밍 플랫폼: 데이터의 생산자와 소비자를 중개하는 메시징 시스템  Event Streaming: 데이터베이스, 센서, 애플리케이션 등의 이벤트 소스에서 이벤트 스트림의 형태로 실시간으로 데이터를 캡처하는 방식나중에 검색할 수 있도록 이벤트 스트림을 영구적으로 저장필요에 따라 이벤트 스트림을 다른 목적지 기술로 라우팅 가능ex) 증권 거래소, 은행 등에서 실시간 금융거래 처리ex) 여행 사업 모바일 애플리케이션에서의 고객 주문 수집 후 즉시 대응  kafka 특징다른 장비가 망가지더라도 잘 돌아간다. 일정 시간 다운돼도 데이터를 보관해 준다.Queue를 기반으로 데이터 순서가 보장된다처리 속도가 빠르.. 2022. 2. 5.
728x90
반응형