728x90 Message Queue/Kafka9 [Kafka] 카프카 재처리 With DLQ2 - 코드 카프카 재처리를 위한 에러 핸들러1. CommonErrorHandler- 에러 핸들러를 오버라이드 해서 처리하는 방법2. DefaultErrorHandler- 기본 에러 핸들러에 backoff 를 설정하여 처리하는 방법 차이점CommonErrorHandlerDefaultErrorHandler (CommonErrorHandler 를 인터페이스 사용)Kafka Streams와 Kafka Connect에서의 공통 오류 처리Kafka Connect에서의 기본에러 처리복잡한 오류 처리 로직을 커스터마이즈 가능기본적인 예외 처리 (예: 로그 기록, 재시도 등) 코드 구현- 둘다 CommonErrorHandler 를 인터페이스로 가지고 있기 때문에 OCP 패턴을 만족한다.- 그렇기 때문에 간단하게 @Primary 를.. 2025. 1. 11. [Kafka] 카프카 재처리 With DLQ1 - 기본구성 카프카 재처리 카프카를 사용하여 컨슈머에서 에러 발생하는 경우 재처리 시도를 구현해본다. 재처리 조건TimeOutException DLQ 조건재처리 익셉션이 아닌경우재처리가 3회 초과 되었을경우 플로우 Docker 설정kafka 띄우기docker-compose -f ./docker-kafka.yaml updocker-kafka.yamlversion: '2'services: zookeeper: image: wurstmeister/zookeeper container_name: zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka:2.12-2.5.0 container_name: kafka ports.. 2024. 12. 24. [Kafka] Error Handling Patterns 카프카 에러 핸들링카프카 에러 핸들링에 대해 알아본다. 카프카 어플리케이션은 이중화된 서버 또는 도커환경에서 수행된다.이중화된 환경에서는 종종 문제가 생기는경우가 있다.카프카의 에러를 처리하는 방식에 대해 알아보고 구현해 본다. 1. Dead letter queue일반적으로 많이 쓰이는 방식이다. 에러가 발생하면 에러가 발생한 이벤트를 Error topic(Dead Letter Queue)으로 보내고 메인 스트림은 계속해서 정상적으로 동작하게 한다. 2. Add a retry topic and retry application구매 서비스에서 사용자가 데이터를 구매했을때 상품 정보가 다른 어플리케이션에서 생성되어 처리 된다고 가정해보자. 금액 필수값이 누락되 이벤트면 다시 그값을 가져오기 위해 이벤트를 재처.. 2024. 6. 1. [Kafka] DLQ(Dead Letter Queue) DLQ 란 DLQ(Dead Letter Queue)는 소프트웨어 시스템에서 오류로 인해 처리할 수 없는 메시지를 임시로 저장하는 큐 (카프카에서는 단순 토픽이다.) DLQ 를 사용해야 되는 이유 통신 비용 절감 일반 또는 표준 메시지 대기열은 보존 기간이 만료될 때까지 메시지를 계속 처리합니다. 이러한 방식을 통해 지속적인 메시지 처리를 보장하고 대기열이 차단될 가능성을 최소화할 수 있다. 실패한 메시지가 만료될 때까지 해당 메시지 처리를 시도하는 대신, 몇 번의 처리 시도 후에 해당 메시지를 DLQ(Dead Letter Queue)로 이동하는 것이 좋다 문제 해결 개선 잘못된 메시지를 DLQ로 이동시키면 개발자가 오류의 원인을 식별하는데 훨씬 수월하다. 수신자가 메시지를 처리할 수 없는 이유를 조사하고.. 2023. 9. 26. 이전 1 2 3 다음 728x90 반응형