2

これまでに Mochiweb について読んだすべての記事から、Mochiweb が非常に優れたスケーラビリティを提供するということを何度も耳にしました。私の質問は、Mochiweb がそのスケーラビリティ プロパティをどのように正確に取得しているのかということです。Erlang 固有のスケーラビリティ プロパティによるものですか、それとも Mochiweb には適切にスケーリングできるように明示的に有効にする追加のコードがありますか? 別の言い方をすれば、Erlang で単純な「ループ」(再帰関数) を使用してリクエストを処理する単純な HTTP サーバーを作成した場合、Mochiweb フレームワークを使用して構築された単純な Web サーバーと同じレベルのスケーラビリティーを備えているでしょうか?

更新:可能なすべての機能をサポートする本格的な Web サーバーを実装する予定はありません。私の要件は非常に具体的です - 固定コントロールを使用して HTML フォームから POST データを処理することです。

4

2 に答える 2

2

おそらく。:-)

各リクエストを個別のプロセス (Erlang では軽量スレッド) で処理する Web サーバーを作成する場合、同じ種類の「スケーラビリティ」を簡単に実現できます。もちろん、Mochiweb のすべてを実装しない限り、機能セットは異なります。

Erlang には、多くのマシン間での配布のための優れたサポートが組み込まれています。これを使用して、さらにスケーラビリティを高めることができるかもしれません。

于 2010-05-25T10:31:20.230 に答える
0

私が理解している限り、MochiWeb自体はスケーラブルではありません。これは、1秒あたり数千のリクエストを処理できる高速で小さなサーバーライブラリです。それを行う方法は、「スケーラビリティ」とは何の関係もありません(mochiweb_acceptor任意の時点でリッスンしているsの数を調整することを除いて)。

MochiWebで得られるのは、堅牢なWebサーバーライブラリとErlangのスケーラビリティ機能です。単一のMochiWebサーバーを実行する場合でも、リクエストが届いたときに、Erlangの分散ノードインフラストラクチャと安価なメッセージパッシングのおかげで、そのリクエストを処理する作業を任意のマシンにオフロードできます。複数のMochiWebサーバーを実行する場合は、それらをロードバランサーの背後に配置し、mnesiaの分散機能を使用してマシン間でセッションデータを同期できます。

重要なのは、MochiWebは小さくて高速(十分)です。Erlangはスケーラビリティのパワーツールです。


独自のサーバーソリューションを導入すれば、MochiWebの効率と「スケーラビリティ」をすぐに満たすことができるでしょう。しかし、その後、彼らがすでに考えていることすべてを再考する必要があり、自分でそれを戦闘テストする必要があります。

于 2010-08-17T19:25:20.497 に答える