Programming-[Backend]/Kafka (12) 썸네일형 리스트형 카프카 멱등성(Idempotence) 설정, Retry 및 DLT 설정 시 유의사항 1. 멱등성 설정enable.idempotence = truemax.in.flight.requets.per.connection retries > 0 이여야함 -> '2147483647'로 설정acks = 'all' 이여야함 만약 enable.idempotence = false이고,max.in.flight.requests.per.connection > 1이면 메시지 배치 중 일부가 에러가 났을 때재시도하면서 순서가 바뀔 수 있음2. Retry, DLT 설정DefaultErrorHandler() 부분에 컨슈머 에러 발생 시 Retry, DeadLetter 정책 설정@Bean public DefaultErrorHandler errorHandler() { DefaultErrorHandler handler.. Consumer Lag 남아있는 것 제거하기(docker kafka container shell tool 활용) 1. 개요 프로듀서에 비해 컨슈머 offset이 뒤쳐져있고, 더 이상 프로듀서가 메시지를 발행하고 있지 않은데 Consumer Lag이 남아있는 경우 offset을 변경하는 방법왜 남아있는지는 다양한 원인에 의해서 일 거 같은데.. 상황에 맞게 연구가 필요할듯함.lag에 의한 메시지가 유실되어도 상관없는 경우(앱 오류나 특정 상황으로 인해 consumer lag이 남아있는 경우)에 적용 2. 방법kafka-consumer-groups.sh shell은 docker를 사용하는 경우 아래 명령어를 실행하여 접근 가능 docker exec -it {yourKafkaDockerContainerName} /bin/bashcd /binls ls 명령어로 kafka 툴 관련 .sh 파일들이 있는지 확인. 없다면 다.. [TIL] 카프카 로그 압축 정보 local container에서 확인 방법(kafka-run-class, DumpLogSegments) 1. 개요아래 Ref. 블로그에서 Producer로 메시지 발송 시 압축에 대한 내용을 보고, Docker로 실행 중인 local 컨테이너에서 로그 정보를 출력해볼려고 했다.https://velog.io/@wwlee94/Kafka-메시지-압축에-대하여 docker로 실행하다보니 CLI용 kafka-run-class.sh 스크립트의 경로 및 로그 파일 경로가 달라서 찾느라 시간을 썼다. 저장해놓는다. /usr/bin/kafka-run-class kafka.tools.DumpLogSegments --files /var/lib/kafka/data/{yourPartitionName}/{yourMessageSegment}.log --print-data-log | grep compresscodec 2. 테스.. [검증 중] Kafka - testcontainer : Transaction 묶기, graceful shutdown, 수동 커밋, await 아직 대략적으로만 경험했고, 확실하지는 않은 내용이라 다른 참조 문서들을 참고해야하는 내용이다. 1. Transaction 묶기 ref) https://gunju-ko.github.io/kafka/spring-kafka/2018/03/31/Spring-KafkaTransaction.htmlkafka는 기본적으로 비동기적인 메시지 발행을 하므로 트랜잭션을 끝까지 보장하지 않는다. 반드시 트랜잭션이 보장되도록 할려면 executeInTransaction 메서드를 사용해야한다. 이 방식은 KafkaTransactionManager를 거치는 방식은 아니고, KafkaTemplate만 이용해서 바로 트랜잭션을 묶어준다.kafkaTemplate.executeInTransaction( t -> t.send(y.. 이전 1 2 다음