1

私はちょうどチャット アプリケーションを構築しようとしており、node.js を使用したいと思っています (これを使用するのは初めてです)。

複数の Linux EC2 インスタンス (apache) と 1 つの mysql データベースで Amazon ELB (粘着性なし) を使用しています。

3 つの質問があります。

  1. AWS ELB - AWS Load Balancer を介して node.js を実行する際に問題はありますか? 他の人が問題を抱えているという記事を読んだことがありますが、それが正常に実行できるかどうかについては何も述べていません。

  2. Node.js はデータベース テーブルの更新を効率的にリッスンし、これらに応答できますか? これは現実的ですか?その可能性を読みましたが、よく使用される機能のようには聞こえませんでした。

  3. node.js が (jquery のように) イベントをリッスンしていることを理解しています。複数の個別の Web サーバーがすべて node.js を実行している場合、それらがすべて同じイベントに応答するのではないかと心配しています。例: いくつかのチャットを DB に書き込み、すべての Web サーバーがこれをクライアントに送信しようとします。(これは、1 つの Web サーバーが要求と応答を取得するため、長いポーリングで問題になります)。これは問題ですか?

ありがとうございました

4

1 に答える 1

0

1 + 3に答える(2についてはわかりません):

  1. AWS elb を 1 年以上使用していますが、問題はありませんでした。アプリケーションには 100% に近いアップタイムが必要です

  2. node.js イベントは、同じプロセスのイベント用です ( axonのようなメッセージング ソリューションを使用しない場合)。したがって、複数の Web サーバーを実行している場合でも、これは問題になることはありません。いくつかのポートでリッスンしているサーバーを開始すると、ロードバランサーがリクエストを elb にバインドされた任意のサーバーに分散します。

要求/応答サイクル自体はアトミックです。つまり、要求を受け取った同じサーバーが、この要求の作業が完了したときに応答を送信する必要があります (チャットをデータベースに書き込みます)。コードは基本的に次のようになります。

http.createServer(function (request, response) {
   // do something with the request, save to db or whatever
   db.save ...

   // and now send the response

   response.write(200);
   response.end();
});
于 2013-06-17T08:50:49.447 に答える