3

RESTful インターフェイスを備えた、主に JSON 応答を提供する新しい API サーバーを計画しています。スケールと可用性が心配です。Restlet と Jetty (または別のコネクタ) を使用して正しい軌道に乗っていますか?

Java の世界に Phusion Passenger のようなものはありますか? たとえば、サーバー インスタンスを正常な状態に保つための事前構築済みのソリューションはありますか?

4

2 に答える 2

9

あなたの質問は、Restlet に関するものではなく、スケーラビリティと可用性の高いサイトの設計に関するものです。Restlet は、適切なシステム アーキテクチャで非常にうまく拡張できることがわかりました。

一般的に言えば、次のことを行います。

  • 1 つだけでなく、Web サーバー マシンのクラスターを実行します。
  • アプリケーションが何も共有されていないこと、つまりアプリケーションの状態が Web サーバーに保存されていないことを、可能な限り確認してください。
  • ロード バランサを使用して、負荷の最も少ない Web サーバーにリクエストを分散します。
  • JSON 応答がキャッシュ可能であることを確認してください。
  • サイトの境界にHTTPリバース プロキシ キャッシュ(Squid など) を追加します。サイトとクライアントの間のキャッシュがウォームアップすると、ほとんどのインバウンド トラフィックは Web サーバーではなくキャッシュによって処理されます。
  • 失敗したリクエストを再試行するクライアント コードを記述します。このようにして、Web サーバーが停止した場合、次の要求は生き残ったマシンに負荷分散されます。
  • そしてもちろん、サイトを自動化して、クラッシュした Web サーバーなどを立ち上げたいと思うでしょう (これは、おそらく ServerFault.com でよく尋ねられる部分です)。

REST は、このタイプのセットアップに最適なアーキテクチャ スタイルです。

@matt が言及しているように、生のパフォーマンスに注意する必要がありますが、通常、最初の関心事は、スケーラブルで高可用性のアーキテクチャを導入することです。

これに関するいくつかの良い情報源は次のとおりです。

そして特に:

Overstock.com は大規模な Web サイトを運営しており、Restlet を多用しています。

于 2010-10-06T04:15:40.913 に答える
2

スケーラビリティとパフォーマンスは、サーブレット コンテナーやフレームワークの選択よりも、これらの要求を処理するアプリケーションの設計方法、そのアルゴリズム、データベースに効率的にアクセスするかどうか、データをキャッシュする方法/場合などに最終的に大きく依存します。

于 2010-09-23T00:02:08.230 に答える