현재 동일한 대기열에 여러 프론트 제작자가있는 추적 시스템에 대해 rabbitMQ를 구현 중입니다.RabbitMQ 대기열 순서 관리
기본적으로 추적 워크 플로에는 노출/클릭 => 리드/판매의 두 단계가 있으므로 대기열에서 보내는 두 가지 유형의 메시지가 있습니다. 매우 간단합니다 : 사용자가 배너를 클릭 한 다음 리디렉션 된 웹 사이트에서 작업을 수행합니다. 이 작업을 수행하려면 몇 초에서 며칠이 걸릴 수 있습니다. 해당 impresison 또는 클릭 후 리드 또는 판매를 소비해야합니다.
문제는 내가 메시지를 연대순으로 소비해야한다는 것입니다. 모든 제작자가 동일한 속도로 큐에 메시지를 보내면 (즉, 메시지가 FIFO 방식으로 올바로 정렬되어야 함) 제작자 중 하나가 (어떤 이유로) 대기열에서 더 느리게 작성할 때 문제가 발생합니다.
예를 들어, 클릭 액션 후 1 초가 지나고 클릭 생산자가 몇 초 동안 멈 추면 클릭하기 전에 리드를 소비하고 추적 시스템이 작동하지 않습니다.
메시지에 첨부 된 헤더에 따라 대기열의 순서를 설정하는 방법을 알고 싶습니다. 내 모든 서버가 동기화되어 있고 해당 시계의 시간은 < 1ns이므로이 정보에 따라 대기열을 주문하고 싶습니다.하지만 문서의 어느 곳에서도 대기열 순서 또는 사용 순서를 설정할 수는 없습니다.
도움 주셔서 감사합니다.
실제로 문제는 rabbitmq와 "standard fifo"에 있지 않습니다. 소프트웨어를 통해 잠재적 인 하드웨어 오작동을 보완하려고합니다. (예 : rabbitmq에게 FIFO 방식이 아닌 메시지를 재정렬하도록 요청합니다. 알 수없는 이유로 게시). 근본적으로 나는 끔찍한 디자인 습관을 없애야한다. :) – user1159791