You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
시스템에서 잘사용하고 있다가 필요로 인해 ttl을 60초에서 120초 변경해야 한다거나 속성을 추가로 해야한다면 **기존 큐를 삭제**했다가 다시 생성해야지만 설정이 가능합니다. 이러한 문제는 메시지 손실이 발생과 애플리케이션 장애로 이어질 수 있기 때문에 RabbitMQ에서는 x-arguments 사용을 권장하지 않고 있습니다.
58
+
59
+
## 프로젝트에 DLQ 적용
60
+
61
+
현재 담당하고있는 알림시스템에 DLQ를 적용과정을 상세하게 알아보겠습니다.
62
+
63
+
### 적용 이유
64
+
65
+
애플리케이션에서 메시지를 받아 처리할 때 에러가 발생 했을 때 로그를 남기고 있지만 서버를 들어가 로그난 기록을 찾아야하는 시간적 비용이 많이 든다는걸 알았습니다. 이러한 문제점을 해결하기 위해 DLQ를 적용해서 에러난 메시지를 따로 격리하여 모니터링하도록 적용하였습니다.
66
+
67
+
### 적용 플로우
68
+
69
+
1. DLQ, DLX 생성
70
+
71
+
사용하고있는 큐에 DLQ를 적용하기 위해, DLQ와 DLX를 먼저 생성해야 합니다. 큐, 익스체인지 생성과 동일합니다.
daemonNotiQ에서 실패 메시지를 DLQ로 보내기 위해 아래와 같이 설정했습니다. 애플리케이션에서 에러가 나면 재시도해도 에러가 나기 때문에 재시도 횟수(delivery-limit: 1)는 없이 설정했습니다. 다른 추가 속성이 없기 때문에 컨슈머가 `requeue=false` 옵션으로 메시지를 거부할 때 DLQ로 메시지가 전송됩니다.
0 commit comments