質問

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

アップデート: 可能な限りすべての機能をサポートする完全に吹き飛ばされたWebサーバーを実装するつもりはありません。私の要件は非常に具体的です - 固定コントロールを備えたHTMLフォームからの投稿データを処理するためです。

役に立ちましたか?

解決

私が理解している限り、Mochiwebはそれ自体がスケーラブルではありません。これは、毎秒数千のリクエストを処理できる高速で小さなサーバーライブラリです。 「スケーラビリティ」とは何の関係もありません(の数を調整することは別として、 mochiweb_acceptorいつでも聞いているs)。

Mochiwebで得られるのは、Solid WebサーバーライブラリとErlangのスケーラビリティ機能です。 Erlangの分散ノードインフラストラクチャと安価なメッセージの合格のおかげで、単一のMochiwebサーバーを実行する場合は、リクエストが入っている場合でも、必要なマシンにその要求の処理作業を必要なマシンにオフロードできます。複数のMochiwebサーバーを実行する場合は、ロードバランサーの後ろに配置し、Mnesiaの分散機能を使用して、マシン間でセッションデータを同期することができます。

ポイントは、Mochiwebが小さくて速いということです (足りる). 。 Erlangはスケーラビリティ電動工具です。


独自のサーバーソリューションをロールすると、おそらくMochiwebの効率と「スケーラビリティ」を箱から出してもらうことができます。しかし、その後、あなたは彼らがすでに考えてきたすべてを再考する必要があり、あなたはそれを自分で戦う必要があります。

他のヒント

おそらく。 :-)

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

Erlangはまた、多くのマシン間での分布を非常に組み込んだサポートを提供しています。これは、さらにスケーラビリティを獲得するために使用することが可能かもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top