私は現在、複数のフロントプロデューサーが同じキューに書き込んでいる追跡システムにrabbitMQを実装しています。
基本的に、追跡ワークフローには2つのステップ(インプレッション/クリック=>リード/販売)があるため、キューに送信される2種類のメッセージがあります。非常に簡単です。ユーザーがバナーをクリックしてから、リダイレクト先のWebサイトでアクションを実行します。このアクションは、実行に数秒から数日かかる場合があります。それに応じた投獄またはクリックの後に、リードまたはセールを消費する必要があります。
問題は、メッセージを時系列で消費する必要があることです。すべてのプロデューサーが同じ速度でキュー内のメッセージを送信する場合(つまり、メッセージはFIFO方式で適切に順序付けられる必要があります)、すべてが良好であるはずですが、プロデューサーの1つが(何らかの理由で)キュー内で書き込みが遅くなると問題が発生します。
たとえば、リードアクションがクリックアクションの1秒後に発生し、クリックプロデューサーが数秒間停止した場合、クリックの前にリードを消費し、追跡システムが機能しなくなります。
メッセージに添付されているヘッダーに従ってキューの順序を設定する方法を知りたいのですが。すべてのサーバーが同期されており、クロックの差が1ns未満なので、この情報に従ってキューを並べ替えたいのですが、キューの順序または消費順序を設定する方法がドキュメントのどこにも見つかりません。
ご協力いただきありがとうございます。