Free Lines Arrow
본문 바로가기
728x90

Message Queue/Kafka7

[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.
[Kafka] docker 카프카 설치 카프카 도커 설치 먼저 서버 2대로 실습을 해본다. 카프카 서버 주키퍼 서버 docker compose 를 쓰면 되지만 직접 설치해 보고 연동을 해본다. 2개 도커를 docker network 로 연결을 해줘야 통신이된다. Zookeeper 설치 1. 우분투 이미지를 가져온다. docker pull ubuntu 2. zookeeper 설치를 위한 ubuntu 를 띄운다. docker run -it -p 2181:2181 --name zookeeper ubuntu 아래처럼 도커가 띄워진걸 확인한다. 3. zookeeper 도커에 접속 docker attach zookeeper 4. 기본 설정 및 zookeeper 다운로드 apt-get update apt-get install -y wget // wget .. 2023. 8. 18.
[Kafka] 카프카 Error Handler 적용 ErrorHandler 카프카 컨슈머에서 에러가 발생했을경우 어떻게 처리를 할까? consumer config 에 error handler를 적용해 주면 된다. ErrorHandler package com.example.demo.handler; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.common.TopicPartition; import org.springframework.contex.. 2022. 12. 23.
728x90
반응형