본문 바로가기

DataOps/Kafka16

[Kafka] 컨슈머 리밸런싱: 파티션 할당 전략 깊이 있게 이해하기 리밸런싱의 종류1. 적극적 리밸런싱(Eager Rebalance) - '레인지(Range), 라운드 로빈(RoundRobin), 스티키(Sticky)이 사용하는 전략- 리밸런싱이 일어나는 경우 모든 컨슈머가 데이터 수신을 중단하고 파티션 그룹 구성 포기함 이로인해 모든 작업을 멈추는 stop the wolrd 현상 일어남- 리밸런싱 이후에 컨슈머들이 새롭게 파티션을 할당 받는 방식 순서1. 모든 컨슈머는 아파치 카프카로부터 데이터 수신을 중단.2. 자신들이 가지고 있던 파티션의 그룹 구성을 포기 (대기 시간 동안에는 LAG가 급격하게 증가).3. 리밸런싱 이후에는 컨슈머들이 그룹에 다시 참여하고, 새로운 파티션을 할당 받음. 2. 협력적 리밸런싱(Cooperative Rebalance, Incremen.. 2025. 5. 30.
[Kafka] 카프카 메시지 저장 방식, 오프셋이 2개씩 증가? 카프카 저장 단위카프카 메시지는 세그먼트라는 저장 단위로 관리되며 세그먼트 내부에 레코드가 쌓이는 형식입니다.[Topic]└── [Partition] ├── 00000000000000000000.log # 활성 세그먼트 (Active Segment) ├── 00000000000000000000.index # 오프셋 인덱스 ├── 00000000000000000000.timeindex # 타임스탬프 인덱스 ├── 00000000000000456789.log # 이전 세그먼트 ├── 00000000000000456789.index └── 00000000000000456789.timeindex 실제로 카프카에 접속해 토픽 데이터를 확인할 수 있습니다. test1이.. 2024. 11. 25.
[Kafka] Log Compaction, Message Compression TL;DR- 모두 저장 공간 효율을 위해 사용될 수 있는 기능이다.- Log Compaction은 같은 record key를 갖는 가장 최신 로그만 남기고 삭제하는 것을 말한다.- Message Compression은 메시지 자체를 압축해서 전달하는 것을 말한다. 1. Message Compression (메시지 압축)- Message Compression은 메시지의 크기를 줄이는 기술- 메시지 크기를 줄임으로써 네트워크 대역폭을 절약하고 저장 공간을 효율적으로 사용하며, 더 빠른 전송 및 처리 속도를 제공- 주로 사용되는 압축 알고리즘에는 Gzip, Snappy, LZ4 등이 있음- 프로듀서 레벨 압축이 있고, 브로커 레벨 압축이 있음- 프로듀서 레벨 압축은 전송되는 데이터 양을 줄이기 위해 데이터가 .. 2024. 7. 30.
[Kafka] 트랜잭션, exactly-once Kafka Transaction?스트림 처리 애플리케이션을 위해 도입된 기능이다. exactly-once 을 보장해준다.동작트랜잭션 프로듀서를 사용할 경우, 트랜잭션 코디네이터가 트랜잭션를 관리하게 된다.출력 토픽에 레코드 저장, 오프셋 증가 2가지 작업이 동시에 커밋되는 것을 보장한다. (Atomic multipartition write)트랜잭션이 해결할 수 있는 문제들1. 앱 크래시로 인한 중복 메시지 문제앱이 토픽에 메시지를 쌓았는데 커밋은 못한 경우 중복 메시지가 쌓일 수 있음.Atomic multi partition write 보장으로 해결2. 브로커 응답 문제로 인한 인한 중복 메시지 문제브로커가 커밋은 성공했는데 성공 응답에 실패한 경우, 프로듀서는 재요청을 보내며 중복 메시지가 쌓일 수 있.. 2024. 6. 24.
[Kafka] KSQL KSQL?Apache Kafka를 위한 SQL 엔진, SQL과 비슷한 문법으로 복잡한 스트리밍 데이터를 쉽게 처리하고, 실시간 대시보드, 모니터링 시스템 및 기타 실시간 애플리케이션을 구축할 수 있음. Stream, TableStream Object연속적인 record의 흐름, 집계보다 데이터 자체를 담는 경우가 많음 Table Object최신상태를 보여주는 데이터를 넣는경우가 많음.재고, 계좌 잔액 등을 생각하면 좋을 듯, key-value형식으로 구성되어 있음  사용 모습Stream 생성 쿼리 2024. 6. 5.
[Kafka] Kafka Stream Stream?- 컴퓨터 과학에서 스트림이란 연속적인 데이터의 흐름, 일정한 데이터 조각의 연속을 의미한다- 일반적으로 Stream 은 업데이트하지 않고, 지우지 않고 쌓기만 한다. 끝이 정해지지 않고 계속되는 불규칙한 데이터를 연속으로 반복 처리할 때 이 또한 스트림 처리라고 부른다.- Data가 순차적으로 도착하여 특정한 컨텐츠를 구성하거나 그 자체가 컨텐츠가 되는 데이터의 흐름 흔히 음악, 영상 등이 실시간으로 송출되어 컨텐츠를 구성할 때 Streaming Service 라고한다. Kafka Streams?  - Kafka Stream은 데이터를 연속적인 레코드로 취급하고, Kafka에 저장된 토픽에서 데이터를 읽어 들여 처리하며, 처리 결과를 다시 Kafka 토픽에 출력해주는 Library, Fra.. 2024. 6. 5.
[Kafka] MirrorMaker2 MirrorMaker2?Kafka를 MultiCluster 로 이용할 때, Cluster간 데이터 이동이 필요할 때 사용하는 도구 패턴1. Solid Cluster 대응- Solid Cluster: 데이터베이스 및 분산 시스템 분야에서 고가용성, 확장성, 일관성을 보장하는 클러스터링 기술, Active-Active or Active-Standby) 2. Cluster 마이그레이션- 마이그레이션 후 Routing 만 변경하여 운영 중단 없도록 하는 것이 목적- 마이그레이션 완료 전까지 Old Cluster 데이터를 New Cluster 로 동기화 3. 사용용도의 구분과 부하분산, 안전성 추가 확보- 같은 데이터를 적재하지만, 클러스터마다 사용용도가 다른 경우 2024. 6. 5.
[Kafka] Kafka Connect 란? - 카프카란? https://mystudylab.tistory.com/105  KafkaConnectKafka Connect는 손쉽게 Kafka를 이용하는 pipeline을 구성해주는 도구.생성되는 Data pipeline은 데이터 이동과 변환이 목적이며 , 분산된 환경에서 수행하기에 고가용성과 부하분산을 구현.다양한 source와 target을 지원하며, source 데이터를 target 에 적재합니다. 구성요소1. Connector- Source connector: 데이터 소스에서 데이터를 추출해 카프카에 데이터 적재- Sink connector: Kafka에서 데이터를 목적지로 전송2. Task- 커넥터는 하나 이상의 작업을 가질 수 있음- Task는 실제로 데이터를 이동시키는 단위이며,여러 작업은.. 2024. 6. 5.
[Kafka] 컨슈머 그룹 - 토픽 컨슘 관계(?) 삭제 컨슈머 그룹과 특정 토픽의 구독 관계를 끊고 싶은 경우가 있을 수 있다.unsubscribe(구독 토픽 목록에서 제외) 한다고 컨슘 이력, 관계가 사라지는 것이 아니기 때문에 lag은 계속 쌓이게 된다. 만약 모니터링 도구에서 이를 구별하지 못한다면 lag 이 해소되지 않는 상황이라 판단할 것이고 지속적으로 alert 이 발생하게 된다.1. 컨슈머 그룹 삭제컨슈머 그룹에 속한 멤버를 모두 죽인 뒤 컨슈머 그룹 삭제하는 방법.토픽 메시지를 처리 중이던 컨슈머 그룹은 삭제할 경우 오프셋 날라가서 문제 생길 수 있음 → 되도록 지양하는 것이 좋아보임2. 컨슈머 그룹 토픽 오프셋 삭제컨슈머 그룹에 속한 멤버를 모두 죽이고, 특정 토픽에 대한 오프셋 날리는 방법kafka-consumer-groups \ --.. 2024. 5. 2.
Slash2023 - 토스ㅣSLASH 23 - Kafka 이중화로 다양한 장애 상황 완벽 대처하기 TL;DR 카프카는 토스에서 핵심 기술로 사용되고 있음(금융 관련 정보 제공, 모든 로그 수집, CDC) 쿼리만으로 실시간 프로세싱이 가능한 ksqlDB 사용 중 Active-Active 로 IDC 이중화하여 DR 시스템 구축 Kafka Connect + Offset Sync로 Kafka 이중화 구성 많은 부분을 자동화해서 사용 중이다 (이중화 토픽들 자동 생성) 카프카로 입수하는 정보 서비스 간 비동기 통신 클라이언트, 서버 네트워크 보안 장비 시스템 로그 서비스 데이터로그 CDC 안정적인 카프카 운영 방법 1. 장애 발생 징후 미리 감지 2.장애 발생 시 대응 시나리오 잘 갖추기 장애 종류 1. 카프카 클러스터 내 일부 노드 장애 -> 카프카는 분산 시스템이라 가용성 해치지 않고 서비스 유지됨, 극복.. 2023. 10. 10.