3

私は現在、複数のフロントプロデューサーが同じキューに書き込んでいる追跡システムにrabbitMQを実装しています。

基本的に、追跡ワークフローには2つのステップ(インプレッション/クリック=>リード/販売)があるため、キューに送信される2種類のメッセージがあります。非常に簡単です。ユーザーがバナーをクリックしてから、リダイレクト先のWebサイトでアクションを実行します。このアクションは、実行に数秒から数日かかる場合があります。それに応じた投獄またはクリックの後に、リードまたはセールを消費する必要があります。

問題は、メッセージを時系列で消費する必要があることです。すべてのプロデューサーが同じ速度でキュー内のメッセージを送信する場合(つまり、メッセージはFIFO方式で適切に順序付けられる必要があります)、すべてが良好であるはずですが、プロデューサーの1つが(何らかの理由で)キュー内で書き込みが遅くなると問題が発生します。

たとえば、リードアクションがクリックアクションの1秒後に発生し、クリックプロデューサーが数秒間停止した場合、クリックの前にリードを消費し、追跡システムが機能しなくなります。

メッセージに添付されているヘッダーに従ってキューの順序を設定する方法を知りたいのですが。すべてのサーバーが同期されており、クロックの差が1ns未満なので、この情報に従ってキューを並べ替えたいのですが、キューの順序または消費順序を設定する方法がドキュメントのどこにも見つかりません。

ご協力いただきありがとうございます。

4

2 に答える 2

10

AMQPキューはFIFOキューです。多数の同時メッセージが公開されると、どのメッセージが最初に来るかがあいまいになる可能性があるため、メッセージoneとメッセージtwoが実際の世界で発生したのと同じ順序でキューに入れられない可能性があります。それはあなたがHAとスピードのために払っている代償です。それについてもっと知りたい場合は、IRCrabbitmqチャネルで質問することができます。

于 2013-07-12T11:26:01.280 に答える
0

キューとは、キュー、つまり先入れ先出しを意味すると思います。消費中に並べ替えることができますか?たとえば、キュ​​ーから10個のメッセージを取得し、それらを解析して、適切な順序で独自のキューまたはリストに配置することを意味します。

于 2013-03-19T12:00:54.727 に答える