Node.jsで記述されたサービスとRubyで記述されたワーカーに複数のフロントエンドがあります。さて、問題はそれらをどのように通信させるかです。負荷を処理するためにワーカーの動的プールを維持する必要があり(負荷が上昇するとより多くのワーカーを生成します)、Node.jsフロントエンドを介してユーザーによってアップロードされたワーカーに画像を送信するため、メッセージは非常に大きくなります。優れたスケーリングが必要なため、キューイングソリューションについて考えましたが、以下を提供する既存のソリューション(または誤解されたガイド)は見つかりませんでした。
- フォールバックメカニズム。私がこれまでに見つけたソリューションには、単一障害点(メッセージブローカー)があり、フォールバックを提供する方法はありません。
- シリアル化。したがって、ブローカーが失敗してもタスクは失われません。
- 大きなメッセージを渡す機能。
- RubyとNode.js用のEasyAPI
- キューサイズを追跡してワーカープールを再配置できるようにするAPI。
- できれば軽量。
たぶん私のアプローチは間違っていますか?たぶん私はキューを使うべきではありませんが、他の方法で使うべきですか?または、上記の要件に適合するキューイングソリューションがありますか?