Obsidian/Recognition/Programing/RabbitMQ(AMQP)/RabbitMQ 추가 기술검토 (Time Out,...

31 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

2023-08-14 16:19:25 +00:00
1. Queue에 오래 쌓여있는 메시지 처리방안
1) 일정횟수 재시도후 실패시(ACK못받음) 임시큐에 보관하도록 설정 할 수 있음.
- 임시큐의 메시지는 별도의 Consumer를 구현하여 해소하거나 임시큐에 TTL설정.
- 재시도 횟수, 간격 설정 가능함.
2) Queue 생성시 자체 설정에서 TTL(Time To Live) 설정
- consumer의 ACK와 상관없음
- 설정시간동안 메시지가 사용되지 않으면 자동삭제 또는 다른 임시큐에 보관할 수 있음.
- Message별로도 설정 가능함.
(큐와 메시지 모두 지정되면 둘 중 더 낮은 시간을 선택.)
2. 클러스터 구성에서 Master노드에 장애 발생시 다른 노드로 연계 방식
- Client자체의 Connection 설정에 전체 노드의 IP.PORT를 나열하여 설정할 수 있음.
3. Queue의 메시지 처리 로그
- Connection System ststus등의 로그는 있지만 Queue 메시지 로그는 찾을수 없음.
4. 처리성능
- 전체 Queue에 담기는 메시지 총량에 따라 성능차이가 발생했으며
- Prefetch의 설정값에따라 큰차이보임.
- 차후 연계할 데이터의 양과 구현될 Consumer의 데이터 처리속도에 따라 Prefetch 값을 적절히 조정 필요.
- Consumer의 로직에서 데이터 처리속도는 빠르다 가정 했을때 1초당 최대 4만건 이하의 데이터를 처리 할 수 있을것 으로 판단됨.
![[Pasted image 20220804151154.png]]
---
그라파나
1. RabbitMQ 클러스터 구성된경우 플러그인 적용 관련
- 클러스터 모니터링 가능 (노드간 상호작용, 클러스터 링크 트래픽, 노드의 연결, 큐, 메시지수 등)
2. 각 Queue 하나의 정보 표출 가능 여부
- 큐 메트릭 정보 있음 (총 메시지수, 전송 준비된 메시지, 최근 게시된 메시지 , 비율 등)