-
RabbitMQ 지연큐 만들기개발/etc 2020. 6. 19. 16:00
개요
지연큐를 만들게 된 계기는 다음과 같다
해당 시퀀스 다이어그램에서는 사용자가 이미지 OCR 을 요청하게 되면
비즈니스 로직에서
- 데이터베이스에서 해당 이미지 값을 초기화
- 썸네일을 생성
- 상태값을 변경
과정이 트랜젝션으로 묶여있다. 썸네일을 만들다가 만약 실패할경우 Rollback 이 될수도 있기 때문이다.
그리고 OCR 같은경우는 메세지큐에서 작업을 관리해서 별도로 처리하고 있다.
그런데 여기서 문제는 OCR 컨슈머에서 데이터베이스 Commit 전에 메세지를 받아서 처리하려고 DB 조회를 한경우에는 데이터가 존재하지 않게된다. 이럴때 유용하게 쓰일수 있을거 같아 지연큐를 만들었다.
Qeueue 생성
일반 큐 생성
딜레이큐 생성
exchange 설정
UI 샘플
test-queue.delayed 에서 Publish Message
5000ms이후 test-queue 에서 Get Message
흐름도
'개발 > etc' 카테고리의 다른 글
K8s 용어정리 (0) 2022.02.14 Docker-for-desktop 대체하기 (Vagrant 를 활용한 docker) (0) 2022.02.10 RabbitMQ 실패 재시도하기 (NACK 처리 php code sample) (0) 2019.10.02 github 블로그를 jekyll 를 통해 관리해보자 (0) 2018.11.09 MongoDB 를 docker로 세팅해보자 (0) 2018.11.09