도커데스크탑으로 rabbitmq DLQ 설정을 해보자
환경은 다음과 같다.
- Windows 10
- docker desktop 4.15.0
먼저 dockerhub에서 rabbitmq를 검색해서 오피셜 이미지를 받는다.

테스트는 3.12.12-management 태그로 진행했다.
도커데스크톱에서 이미지 메뉴로 이동해서 rabbitmq 이미지에 옵션을 주어 run 시킨다.
UI 사용을 위한 15672 포트와 mq사용을 위한 5672포트를 노출시킨다.


이미지가 실행되면 터미널 탭으로 이동하여 신규 유저를 생성한다.
rabbitmqctl add_user user01 pass01

브라우저를 통해 http://localhost:15672 로 접속하면 RabbitMQ 관리 웹에 접속할 수 있다.
(최초 접속 id와 password는 모두 guest이다)
먼저 admin 탭으로 이동하여 신규 생성한 user01을 확인하고 권한과 태그를 부여하기 위해 user01을 클릭하여 상세페이지로 이동한다.


1) Set permission 버튼을 클릭하여 권한을 부여하고 update this user에서 2) pass01을 각각 입력한뒤 3) [Admin] 을 클릭하여 태그 administrator를 생성한뒤 4) update user를 클릭하여 신규 생성한 사용자 정보를 업데이트 한다.
다시 리스트로 이동하면 다음과 같이 사용자 정보가 변경되었음을 확인할 수 있다.

이제 Queue를 생성해보자.
Classic 타입을 선택하고 Queue이름을 입력한뒤, 하단의 노란색 음영의 1,2,3 을 차례대로 클릭하여 Argument를 추가하고 각 값을 캡쳐와 같이 입력하고 Add queue 버튼을 클릭하여 queue를 생성한다.

Message TTL은 큐로 발행된 메시지의 지속시간으로 요건에 맞게 설정하면 되는데 단위가 밀리세컨즈로 60000이 60초이다.
Dead letter exchange 와 Dead letter routing key는 queue에 들어온 메시지를 리스너에서 처리시 exception발생등으로 retry 횟수를 초과하게 되는 경우 별도의 queue(DLQ, Dead Letter Queue)로 전송하여 이후 재처리 또는 로깅 용도로 사용하기 위한 옵션이다.
테스트를 위해 둘다 세팅해본다.
그리고 이어서 dead letter queue "q.domain.001d.dev"도 생성해본다. 마찬가지로 클래식 타입으로 생성하고 TTL 설정만 해보자.

이제 Exchange 탭으로 이동하여 direct 타입의 exchange "x.domain.dev"를 생성하자.

exchange type별 용도는 공홈을 참조한다.
https://www.rabbitmq.com/getstarted.html
RabbitMQ Tutorials — RabbitMQ
RabbitMQ Tutorials These tutorials cover the basics of creating messaging applications using RabbitMQ. You need to have the RabbitMQ server installed to go through the tutorials, please see the installation guide or use the Docker image. Executable version
www.rabbitmq.com
그리고 생성한 exchange를 클릭하여 상세페이지로 이동한 뒤 앞에서 생성했던 queue 들과 routing key 를 이용하여 바인딩한다.

바인딩후 x.domain.dev 상세 페이지에서 "r.domain.001.dev" routing key로 publish하면

"q.domain.001.dev" 에서 getMessage하였을때 테스트한 payload를 확인할 수 있다.

이제 로컬 사용 준비가 끝났다.
'CloudNative > App Definition & Developement' 카테고리의 다른 글
| tekton - OCP pipeline 3 steps (0) | 2024.03.27 |
|---|---|
| strimzi on docker desktop k8s (1) | 2024.03.04 |
| gitlab 502 error, gitlab-shell self-check failed (0) | 2024.02.21 |
| 윈도우 PC에 redis + redis insight 구성 (docker) (2) | 2024.01.08 |
| 3분컷 쿠버네티스 카프카 모니터링(Kafdrop) 배포 (0) | 2022.10.13 |