2016-07-28 6 views
2

私はErlangをもっと学びたいと思っています。私はそれをコアバックエンドロジックに使用したいと思います。バックエンドでErlang +その他の言語を使用

エンドユーザと接続するためにNodeJSのような別のスタックを選択して何らかの形でErlangに接続する必要があるのだろうか?

私は、WebSocketに完全に適しているため、NodeJSを使用するユーザーにwebsocket接続を行い、NodeJSとErlang間の通信を作成してErlangにすべてのデータ処理を渡し、NodeJSを仲介者として維持しますバックエンドとエンドユーザー。

私はまったくミドルマン技術を使うべきですか、Erlang + Apache/nginxを入れて、Erlangを使ってシステム全体を実装するのは良い解決策ですか?

答えて

1

Erlangの主な強みは、クライアント接続とワーカーへのルーティング要求を正確に処理することです。軽量で孤立したプロセスにより、多数の接続に非常によく適合し、非常にエラー許容性が高くなります。 Erlangは、通常、大量の処理に適した言語ではありません。要求処理とルーティングに使用する必要があります。

node.jsのようなものを接続ハンドラとして置くのではなく、単にルータを使用します。 YawsまたはCowboy(現在はもっと一般的な選択)をWebSocketサーバーとして使用し、Erlangのすべてを処理します。

プロダクションシステムでは、Erlangサーバの前でロードバランサ/プロキシとしてnginx/haproxyを使用できますが、必ずしも必要ではありません。

Erlangサーバのスケーラビリティに関する興味深い記事は、A Million-user Comet Application with Mochiwebです。これは、Webソケットではなく、彗星スタイルのHTTPリクエストですが、多くの優れた情報があります。

関連する問題