DataOps/Kafka15 [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. [if(kakao)2022] 카프카, 대규모 클러스터 운영 후기 정리 TL;DR - 카카오 카프카 클러스터는 초당 1,800만 건 메시지를 처리한다. - 주키퍼는 홀수 구성하는 게 좋고 5대 구성하는 것이 좋다. - Non-Raid 를 사용해 디스크 독립 구성을 한다. - 기본적으로 토픽 리텐션은 3일(주말 대비), 토픽 별로 따로 관리하는 경우도 있다. - 소량의 메시지 소실을 감안하고 빠른 장애 복구를 최우선으로 클러스터를 구성한다. - 메트릭 정보는 프로메테우스에 저장해 그라파나로 시각화한다. - 로그는 파일피트로 수집 후 나이파이로 재처리 후 엘라스틱서치로 저장 후 키바나로 시각화한다. - Kraft Mode 도입을 아직, 4.x부터 도입 예정. - 2018년 처음 클러스터 소개 - 데이터 흐름을 모아주는 실시간 분산 스트리밍 플랫폼 - 전체 1.5조 메시지 - 초.. 2023. 9. 29. 이전 1 2 다음