3

10000 までの Web クライアントを同時にサーバーに接続したい Web プロジェクトがあるとします。また、1 つのクライアント セッションが約 25 分間続くと仮定します。

LAMP スタックまたはその他の一般的な Web スタック/フレームワーク (Ruby on Rails と Linux 上の Apache など) を、Erlang/OTP で構築された Web プロジェクトと比較すると、他のフレームワークが備えていないフォールト トレランスの点で Erlang/OTP には何がありますか?ん?

Erlang/OTP がその地位を維持している間に、LAMP スタック全体がクラッシュする原因となるクライアントに発生する可能性のあるイベントは何ですか?

4

2 に答える 2

7

典型的な LAMP スタックは、ある程度の耐障害性を採用していることに注意してください。特に、LAMP スタック内のリクエストが失敗した場合、そのリクエストのみが実行され、残りのコードは実行されます。この種の保護により、他のリクエストに影響を与えることなく、単一のリクエストで障害を発生させることができます。

Erlang は、この「小さな予期せぬエラーに対処できる」という考えを、より細かいスケールで提供します。アプリケーションに他のサブシステムがある場合は、エラーに対する同じ種類の許容範囲をそれらにも拡張できます。「無料で」入手することはできませんが、堅牢なシステムを構築するためのツールが用意されています。LAMP スタックでのクライアント エラーを想像してください。これは、多くの場合、そのクライアントの切断につながります。Erlang ではそうではないかもしれませんが、クライアントは実行し続けることができます。

10000 クライアントのシステムの場合、Erlang はクライアントごとにプロセスを持つことができるという利点を提供します。または、クライアントごとに 10 プロセス。プロセス/スレッドはかなり重くて高価であるため、多くの言語でこれを引き出すのははるかに困難です。一部のクライアントが別のマシン上にある場合でも、クライアント間のプロセス間通信は簡単であることに注意してください (いつか分散クラスターに拡張することを想像してください)。

コードを特定の方法で記述すると、何らかの理由でクライアントがクラッシュした場合に、その状態が他のプロセスによって適切にクリーンアップされるようにすることができます。これにより、状態での多くの小さな厄介なリークも回避できます.

于 2011-10-13T11:12:28.293 に答える
3

Erlang / OTPには、他のフレームワークにはないフォールトトレランスの点で何がありますか?

現在、Erlang / OTPには、そうでない場合でも非常に最小限の副作用があります。その並行性のために、のようなyawsWebサーバーは、接続ごとに文字通り小さなWebサーバーを生成します。1人のユーザーがアプリケーションの特定のWebサービス障害の影響を受けた場合、他のすべてのユーザーは気付かず、そのユーザープロセスのみが終了する可能性があります。

supervisorsOTPを使用すると、サーバーがダウンした場合にサーバーが再起動したり、その他の多くの機能やオプションが必要になるなど、さまざまなアプリケーションを構築できます。

Erlangのディストリビューションにより、分散アプリケーションを作成できます。私は個人的yaws web serverにWebアプリケーションの構築に使用しました。

私の経験では、たとえば、http: //alexmarandon.com/articles/mochiweb_tutorial/Mochiwebにあるチュートリアルを選択しても、パフォーマンスは非常に優れています。実際、数年前、yaws Webサーバーの最も古いバージョンは(当時の)最新バージョンでベンチマークされており、ベンチマークの結果は非常に目覚めています。パート2パート3のMochiwebで100万人のユーザーコメットアプリケーションを見て感動しました。これらは、Web用に構築された強力なWebフレームワークの数少ない例の一部です。Apache

ちなみに、 Erlang / OTPNO SQL Databasesで開発されたこれらの新しいものについて聞いたことはありますか?例: Membase Server [ホームページはこちら: http: //www.couchbase.com/products-and-services/membase-server ]、Couch DBRiak、彼らのパフォーマンスは非常に印象的です。つまり、彼らのWeb / RESTインターフェースは非常に安定しており、その印象的な文書化されたライトスループットにより、基盤となるテクノロジー(Erlang / OTP)が高可用性のためだけでなく構築されていることを証明しました。フォールトトレラントシステムのみですが、Web用でもあります!このドキュメントを読んでください:http://blog.couchbase.com/why-membase-uses-erlangREST (HTTP) interface

erlangに組み込まれ、非常に印象的なWebフレームワークは、次のwikiページにリストされています: http: //en.wikipedia.org/wiki/Erlang_(programming_language)。Web上で強力にする機能のおそらくより良い要約はここで見つけることができます:http://cs.nyu.edu/~lerner/spring10/projects/Erlang.pdf

于 2011-10-13T15:39:56.673 に答える