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

1.9 KiB

  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 하나의 정보 표출 가능 여부
    • 큐 메트릭 정보 있음 (총 메시지수, 전송 준비된 메시지, 최근 게시된 메시지 , 비율 등)