2016-06-22 13 views
0

私は一連のタスクを持っており、それぞれには一定の条件を満たす必要があります。例えば、タスクには100MbのRAMが必要です。また、私は労働者が配置されている複数のサーバーを持っています。各作業者には、どれだけのリソースがあるかを記述した設定があります。たとえば、タスクの実行に1GバイトのRAMを使用するワーカーもいます。
各作業者が渡された作業の要件を満たすように、作業者間の配布作業のためのシステムはありますか?あるいは、私は何とかメッセージブローカー(RabbitMQなど)で何とかやることができますか?
私は車輪を再発明したくないので、私は自分のアプリケーションを書くことを認識しています。
労働者はGoに書かれています。非等価サーバー上の分散コンピューティング

答えて

0

RabbitMQは、クライアントについて明示的にそのようなことを知らない。いくつのクライアントが存在するか、キューに登録されているユーザの数などを知ることができます。

しかし、必要に応じてタスクを配布するように交換を設定することはできます。しかし、(タイプの)加入者がそれに行くべき仕事の出版の前に知っていなければならないでしょう。

+0

しかし、もし何人かの作業者が落ちると、仕事が実際に完了するまでACKを出さなければ、それは失われた仕事 –

+0

@ NikitaLapkovにはなりません。 – cantSleepNow

+0

サーバー「mike」が落ち、サーバー「mike」のタグ付けされたタスクを送信すると誰もそれを受け取りません。 –

関連する問題