본문 바로가기
728x90

OpenSource/Kafka3

[Kafka] Kafka Lag의 진짜 원인 - Consumer에서 집계를 하면 생기는 일 “여러 토픽에서 들어오는 데이터가 전부 도착해야 다음 작업을 실행해야 한다.” 이번에 구현하게된 기능 중 하나로 Redis를 이용한 분산 집계 구조 설계를 해보았다.구현 중 발생한 오류를 해결하는 과정을 작성해보았다.🚨 이 글을 쓰게 된 실제 문제 상황우리는 하나의 작업을 수행하기 위해 서로 다른 4개의 Kafka 토픽에서 데이터를 받아야 했다.토픽데이터 도착 시점은 아래의 표와 같다.A5초 후B10초 후C15초 후D20초 후즉, 마지막 토픽이 항상 제일 늦게 도착하는 구조였다. 처음에는 단순하게 이렇게 구현했다.Kafka 메시지 수신 → Redis에 저장 → 현재까지 저장된 개수 확인 → 다 모이면 실행 그런데 운영 중 이상 현상이 발생했습니다.마지막 토픽(위의 예시에서 D)에서 Kafka Lag 발.. 2026. 2. 1.
[Kafka] Zookeeper 기본 개념 정리 https://zookeeper.apache.org/ Apache ZooKeeperzookeeper.apache.org Zookeeper?분산 코디네이션 서비스를 제공하는 오픈소스 프로젝트직접 어플리케이션 작업을 조율하는 것을 쉽게 개발할 수 있도록 도와준다.일반적으로 N개의 주키퍼 서버의 집합인 Ensemble로 구성leader-follower 구조 : Leader가 Follwer에게 동기화를 위한 명령을 내린다.일반적으로 Server로 Zookeeper, Client로 Kafka로 구성분산 코디네이션 서비스?분산 시스템에서 시스템 간의 정보 공유, 상태 체크, 서버들 간의 동기화를 위한 락 등을 처리해주는 서비스→ 여러 서버 간의 동기화를 담당하여 클러스터 내의 서비스들이 안정적으로 동작할 수 있도록.. 2024. 5. 9.
[Kafka] 카프카 기본 용어 정리 Topic데이터가 들어갈 수 있는 공간테이블, 폴더와 유사한 개념Partition어떤 토픽에 대해서 producer/consumer가 병렬처리방식으로 분산저장되는 단위하나의 토픽에 여러개의 파티션 존재0번 인덱스부터 시작큐와 유사하게 동작Producer : 데이터를 쌓는다.Consumer :오래된 순서대로 가져감offset : 파티션 속 위치단, 컨슈머가 읽어도 데이터는 삭제되지 않는다.파티션 속에 데이터는 지정된 시간과 용량만큼 사용 후 삭제된다.늘릴수는 있지만 줄일 수는 없다.늘릴수록 컨슈머 분산가능파티션의 개수 >= 컨슈머의 개수replication (복제)높은 가용성(High Availibility)을 얻기 위해 각각의 partition을 각기 다른 브로커에 복제하는 역할서버에 장애가 생겼을 때 .. 2024. 5. 8.
728x90