私が目指しているのは、RabbitMQ をワーカー エージェントとの間のトランスポートとして使用する Map/Reduce システムです。これは、単純なスケーリング ロードマップを可能にするだけでなく、開発とテストのための単一サーバーの実装も可能にするためです。
RabbitMQ で RPC を使用したタイムアウト付きの単一メッセージに関する記事をいくつか見ましたが、これらはブロックしているようです。リクエストのバッチを起動できるようにする必要があり、それぞれが異なるエージェントによって処理される可能性があります。次に、すべての回答を照合して、1 つの回答にまとめられるようにする必要があります。
RPC を使用すると、タスクの並列処理ではなく、非常に複雑なシリアル処理になると思います。
また、特定の状況 (エージェントが一時的なエラーを報告するなど) でリクエストを再送信できるようにしたいと考えていますが、これは必須ではありません。
マスター アプリケーションでスレッドを生成し、それぞれに RPC 呼び出しが必要になると思いますが、これは Web アプリであり、エージェントによって処理される 20 のタスクの領域にある可能性があるため、私はこのアプローチに熱心ではなく、すぐにボトルネックになるのではないかと疑っています。