강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

writer0713님의 프로필 이미지
writer0713

작성한 질문수

실전에서 바로 써먹는 Kafka 입문

[실습] Spring Boot로 재시도조차 실패한 메시지 사후 처리하기

재시도조차 실패한 메시지 사후 처리하기

작성

·

16

0

재시도조차 실패한 메시지들은 dlt 로 이동하게 되고 이 메시지들에 대한 처리를 위해 @KafkaListner 를 사용해서 처리하는 방법을 보여주셨는데요.

 

리서치를 하다보니 @DltHandler 기능이 있는걸 알게됐습니다.

 

dlt 를 처리한다는 부분에서 @DltHandler 가 좀 더 어울릴거 같은 느낌인데 @KafkaListener 로 처리하신 특별한 이유가 있으실까요?

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요! 질문 잘 해주셨어요 ~

질문해주신 내용에 답변드려볼게요 !

 

우선 강의에서 @KafkaListener로 DLT를 사용한 이유는

클래스 분리를 통한 관심사 분리의 이점을 활용하기 위해서 였습니다!

@DltHandler는 같은 Consumer 클래스 안에서

DLT 메시지를 같이 처리하는 방식이라 코드가 직관적이라는 장점이 있지만

메인 Consumer와 DLT 처리 로직이 한 곳에 섞여있어 관심사 분리가 덜 된다는 단점이 있어요 !

실무에서는 Slack 알림, 모니터링 시스템 연동, 별도 DB 저장 등의 이유로

DLT 메시지 처리 로직이 복잡해질 수 있어요 !

그래서 메인 Consumer와 완전히 분리해서 관리할 수 있는 @KafkaListener를 사용했습니다!

 

물론 DLT 처리 로직이 단순하고 @DltHandler를 써도 크게 단점을 느끼지 못하는 상황이라면

@DltHandler를 사용하는 것도 충분히 좋은 선택이에요 :)

 

추가로 궁금하신 점 있으시면 또 질문 남겨주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. writer0713님.

Kafka에서 메시지를 처리할 때 일반적으로 사용하는 방법 중 하나가 @KafkaListener@DltHandler의 활용입니다. DLT(Dead Letter Topic)로 이동한 메시지를 어떻게 다룰지에 대한 질문을 주셨네요.

@KafkaListener vs @DltHandler

  1. @KafkaListener:

    • @KafkaListener는 특정 Kafka 토픽에서 메시지를 소비하여 처리하는 기본적인 방법입니다. 이를 사용하여 DLT에서도 메시지를 소비할 수 있으며, 구조가 단순하다는 장점이 있습니다.
    • 그런 점에서, 이미 익숙하게 사용하는 방식이기 때문에 특별한 이유 없이 활용할 수 있습니다.
  2. @DltHandler:

    • @DltHandler는 Spring Kafka에서 제공하는 기능으로, 주로 DLT의 메시지를 보다 효율적으로 관리하고 처리할 수 있도록 도와줍니다. 이 기능을 사용하면 DLT가 생성된 원인을 분석하고 재시도 또는 복구 절차를 별도로 구현하는 것이 보다 쉬워집니다.
    • 그러나 표준 @KafkaListener와 큰 차이가 없을 수도 있을 뿐 아니라, @DltHandler의 활용은 특정 상황에서 필요에 따라 선택적으로 사용할 수 있습니다.

특별한 이유가 없다면

기본적으로 @KafkaListener를 사용하여 처리하는 것은 매우 직관적이며 일반적인 사용 방식입니다. @DltHandler는 DLT 처리에 특화된 기능을 제공한다고는 하지만 @KafkaListener로도 충분히 원하는 작업을 수행할 수 있기 때문에 강의에서 선택된 것으로 보입니다.

만약 DLT 메시지의 처리 로직을 간소화하거나 특화된 조작이 필요할 경우 @DltHandler를 사용하는 것이 유리할 수 있습니다. 결국, 사용하는 기술 스택과 요구사항에 맞춰 선택하면 좋습니다.

추가 자료

이에 대해 추가적인 이해를 돕기 위해 유사한 질문과 답변을 확인하시려면 다음 링크를 참고하시기 바랍니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

writer0713님의 프로필 이미지
writer0713

작성한 질문수

질문하기