を含むメッセージのために:のRabbitMQ:ディスパッチャ私は多くのタスクが含まれているのRabbitMQを経由してメッセージを配布しようとしています多くのタスク
Producer --> RabbitMQ Exchange --> 10 Consumers
例えば: ユーザーは、1000の作業が含まれている交換機へメッセージを送信します。取引所は、最短の待ち行列を有する消費者にタスクを均等に分配する必要がある。
RabbitMQで使用されるキューイングメカニズムについての知識がないため、注文をタスクに分割してコンシューマキューに配布するためのカスタムロジックが必要です。
これはどのように行われますか?あなたが単一のキューを使用し、そのキューとレバレッジConsumer Prefetch (QoS)に接続された複数の消費者を持っていた場合(私は生産者と消費者の両方でPython /ピカを使用しています。)
偶数ディストリビューションのための良いアイデアだが、プロデューサーはまだ私が避けようとしている1000個のメッセージを送信する必要があります。 – knipknap
ああ、1000のタスクを含む1つのメッセージを配布しようとしていて、10人の異なる消費者がそのメッセージの一部を処理しようとしていますか?私はたぶんそのメッセージを10個のメッセージに分割し、上記と一緒に行くでしょう。そうすれば、1000個のメッセージではなく10個だけを送信することになります。 – eandersson
まさに!残念ながら、1000タスクは一例に過ぎませんでした。実際には、数値は〜100.000以上まで変動します。それぞれをメッセージにパッケージ化するオーバーヘッドはあまりにも大きすぎます。言うまでもなく、それらをすべて追跡すると、毛深いものになります。 – knipknap