6

パフォーマンスの良いスタンドアロン ワーカーを含む HTTP アプリケーションがあります。問題は、キャッシュを消去して再構築する必要がある場合があるため、最大 30 秒間応答を停止することです。

多くのロードバランサーを調べましたが、この問題に対処しているようには見えません。Perlbal といくつかの Apache モジュール (fcgid など) を試してみましたが、キャッシュの再構築で忙しいワーカーに喜んでリクエストを送信します。

だから私の見解は次のとおりです。すべての http 要求がキューに入れられ、ワーカーが可能なときにメッセージを処理するように任せるメッセージ バス ソリューションはありませんか?

または、代わりに、ワーカーが応答できない場合があることを考慮できるロードバランサー。

後で追加:ワーカーがビジー状態のときに管理プロトコルを使用してロード バランサーに通知できるという戦略が考えられることは承知していますが、その解決策はぎこちなく見え、誤ったエラーが発生するエッジ ケースがいくつかあるのではないかと心配しています。

4

2 に答える 2

2

ここには 2 つの戦略があります。ワーカーを一時的にオフラインにして、バランサーが放棄するようにします。逆制御 - バランサーがワーカーにタスクをプッシュするのではなく、ワーカーがバランサーからタスクをプルします。2 番目の戦略は、メッセージ キューで簡単に実行できます。

于 2013-03-28T21:34:19.977 に答える