tech / kafka
Kafka Connect DLQ, 소스 커넥터에는 적용되지 않는다
Dead Letter Queue는 싱크 커넥터 전용 기능이다. errors.tolerance=none 기본값에서는 DLQ 토픽을 지정해도 동작하지 않는다는 것을 ConnectorConfig 소스로 확인했다.
StreamsBuilder.build()에 Properties를 안 넘기면 최적화가 무시된다
topology.optimization을 설정만 하고 StreamsBuilder.build()를 인자 없이 호출하면 아무 효과가 없다. Kafka Streams 소스 Javadoc에 굵게 강조된 함정과 EOS 설정을 함께 정리했다.
멱등성 프로듀서가 못 막는 중복, 애플리케이션 레벨 재전송
enable.idempotence는 프로듀서 내부 재시도의 중복만 제거한다. 애플리케이션이 직접 재호출하는 재전송과 세션을 넘나드는 재시작은 별개 문제라는 것을 KafkaProducer 소스로 확인했다.
Kafka Tiered Storage, 압축 토픽에는 쓸 수 없는 이유
cleanup.policy=compact인 토픽은 원격 스토리지 대상이 될 수 없다. LogConfig 검증 로직으로 확인한 Tiered Storage 설계 제약과 log.local.retention.ms 기본값의 함정.
KRaft 컨트롤러 쿼럼, voters와 bootstrap.servers 헷갈리지 않기
ZooKeeper 없는 Kafka에서 controller.quorum.voters와 controller.quorum.bootstrap.servers는 서로 다른 부트스트랩 경로다. 트렁크 소스로 확인한 KRaft 설정 원칙.