DLQ의 수동 커밋에 대해서 질문있습니다.
4
작성한 질문수 20
처리에 실패한 메시지를 DLQ로 재발행해서 별도로 재처리하는 구조를 설계한다면 굳이 수동 커밋을 유지하지 않고 enable.auto.commit=true로 바꿔도 무방한지 궁금합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 이찬원님.
Apache Kafka에서 메시지를 처리하다가 실패하여 Dead Letter Queue (DLQ)로 메시지를 보내는 구조에 대해 질문 주셨네요. Kafka의 자동 커밋과 수동 커밋을 고려할 때 중요한 점들을 살펴보겠습니다:
자동 커밋 (
enable.auto.commit=true): 이 설정을 사용하면 Kafka Consumer는 주기적으로 오프셋을 자동으로 커밋합니다. 이 방식은 구현이 간단하고 보통 메시지를 잃어버릴 위험이 낮은 경우에 유용합니다. 그러나 메시지 처리 실패 상황에서는 메시지가 처리되지 않았는데도 커밋될 수 있는 문제가 있습니다.수동 커밋: 수동 커밋을 사용하는 경우, 메시지가 정상적으로 처리되었을 때만 오프셋을 커밋하기 때문에 보다 안전한 메시지 처리 보장을 제공합니다. 따라서 메시지 처리의 신뢰성을 확보할 수 있습니다.
DLQ로 메시지를 재발행하여 별도로 처리하는 구조라면, 자동 커밋을 사용하더라도 큰 문제는 없겠지만 아래 사항을 고려해야 합니다:
메시지 재처리 요구: 만약 처음 메시지 처리 시도를 더 한 번 복구하려는 경우라면, 수동 커밋이 더 적절할 수 있습니다. 그 이유는 수동 커밋을 통해 실패한 메시지에 대해 다시 시도할 수 있기 때문입니다.
에러 핸들링 및 로깅: 자동 커밋을 사용할 경우, 에러 발생 시 별도로 처리 로직을 구현해 놓는 것이 중요하며, 각 경우의 로깅도 잘 관리해야 합니다.
보다 심층적인 내용이 담긴 유사한 주제의 질문과 답변을 확인해 보시길 추천드립니다:
- Kafka의 메시지 처리와 커밋 전략 - Kafka의 메시지 처리 시 커밋 전략에 대한 다양한 접근에 대해 설명합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
노션링크가 접근되지 않습니다.
0
13
1
h2 database
0
8
0
실무에서 동의어 정의 관련
0
15
2
Request DTO에서 Entity를 생성할 때 의존성 방향을 반대로 하면 어떨까요?
0
26
2
소스 코드 좀 올려주세요.
0
26
1
스프링 부트 버전 질문
0
40
2
혹시 다음 강의는 언제쯤 나올까요?
0
18
1
개념과 격벽에 대한 이해를 팀과 공유하고 합의하는 방법
1
48
2
접근 가능한 카트 목록을 조회하는 API는 없는걸까요?
1
55
2
new 패키지명.Dto명 생략가능
0
50
2
JWT토큰 발급 시, subject 값을 다양하게 넣어서 여러 개의 토큰을 만드는 이유
0
44
2
수업 자료 사이트가 또 바뀌었을까요?
0
35
1
ansible playbook 오류
0
51
2
테스트 코드 작성 시 DTO 새로 작성하는 이유가 궁금합니다.
0
44
1
leaveGroupChatRoom 문의
0
64
3
SpringBoot4 버전 Hibernate5JakartaModule 라이브러리 오류
0
44
1
aws 관련 질문드립니다.
1
55
3
spring ai에서 RAG ETL 파이프라인 성능 최적화에 대해 질문이 있습니다!
2
61
1
kubectl exec 에러가 발생해서 문의드립니다.
0
71
3
강사님 질문 있어요.
0
50
2
실습 환경 : 파이썬 3.10 관련 문의
0
51
2
setter 사용하지 않기
0
41
1
안녕하세요 토비님 혹시 완성된 코드의 repository 주소는 없을까요?
0
70
2
혹시 수업자료는 다운받을 수 있는 곳이 없나요?
1
86
2





