개발/Kafka
Kafka 메시지 삭제 문제 해결 방법: retention.ms 설정 이해하기
Kafka 토픽의 retention.ms=3600000 으로 설정해서 1시간마다 토픽의 메세지가 삭제되게 설정을 했는데 메세지가 시간이 지나도 삭제가 안되었습니다.사유를 확인해보니 Kafka의 메시지는 로그 세그먼트 파일로 저장되는데 메시지 삭제는 로그 세그먼트 단위로 이루어지기 때문에, 해당 세그먼트가 닫히지 않으면 메시지가 삭제되지 않는다고 합니다.Kafka에서는 segment.ms(segment 생성 주기), segment.bytes(segment를 파일 크기)를 통해 신규 segment를 언제 생성할지를 결정합니다.따로 설정 하지 않았으면 아래의 default값으로 설정이 되고 해당 기준에 걸리지 않으면 신규 segment 파일이 생성 안되고 segment 파일이 닫히지 않았기 때문에 토픽의 re..
Kafka 토픽 메시지 삭제: 디스크 공간 확보 방법
Kafka 테스트 중 디스크에 용량이 많이 쌓여서 디스크에서 Kafka Topic의 메세지를 삭제하려고 Kafka UI에서 Clear Messages를 했는데 메세지가 삭제되지 않았습니다.Kafka UI에서 Clear Messages 버튼을 클릭하면, 해당 토픽의 메시지를 삭제하는 것이 아니라 컨슈머 그룹이 해당 토픽의 오프셋(offset)을 가장 최근 메시지의 오프셋으로 이동시키는 작업을 수행합니다. 이는 해당 컨슈머 그룹이 기존에 처리하지 못한 메시지들을 건너뛰고, 최신 메시지부터 읽도록 만드는 것입니다.디스크에 저장된 메시지는 토픽의 설정된 retention period (보관 기간) 또는 retention size (보관 크기)에 따라 일정 시간이 지나거나 특정 크기에 도달했을 때만 자동으로 삭제..
[Kakfa] No `meta.properties` found in /tmp/kraft-combined-logs 에러 수정
wsl centos 환경에서 kafka를 실행할때 아래의 에러가 발생 했습니다. [2024-03-28 13:04:20,532] WARN No meta.properties file under dir /tmp/kraft-combined-logs/meta.properties (kafka.server.BrokerMetadataCheckpoint) [2024-03-28 13:04:20,535] ERROR Exiting Kafka due to fatal exception (kafka.Kafka$) org.apache.kafka.common.KafkaException: No `meta.properties` found in /tmp/kraft-combined-logs (have you run `kafka-storage..
Apache Kafka Raft(KRaft) 소개(ZooKeeper 제거)
Apache Kafka Raft(KRaft)는 Kafka 2.8 버전에서 도입된 중요한 기능 중 하나입니다. Kafka 2.8 버전부터 KRaft (Kafka Raft 메타데이터 모드)라는 이름으로 알려진 이 기능은 Kafka의 클러스터 메타데이터 관리를 위한 새로운 방식을 제공합니다. 이전까지 Kafka는 메타데이터 관리를 위해 Zookeeper에 의존해 왔지만, KRaft 모드는 Kafka가 Zookeeper 없이 독립적으로 클러스터 메타데이터를 관리할 수 있게 해줍니다. Raft 프로토콜이란? Raft는 분산 시스템에서 높은 가용성을 보장하면서 일관된 상태를 유지하기 위해 설계된 합의 알고리즘입니다. Raft는 분산된 노드 간에 안정적인 리더 선출과 로그 복제를 통해 시스템의 일관성을 유지합니다. ..