0

約 50.000 の電子デバイスが、node.js で作成された Web サービスに 1 分間に 1 回接続するという状況です。それぞれが JSON データを含む POST リクエストを送信します。このすべてのデータを保護する必要があります。Web サービスはこれらの要求を受け取り、データをデータベースに保存します。また、DB からデータを取得するための読み取り要求も可能です。

次のインフラストラクチャに基づいてシステムを構築すると思います。

Node.js + memcached + (mysql クラスターまたは Couchbase)

では、このすべての接続を処理できるようにするには、Web サーバーにどのようなメモリ要件を割り当てる必要があるでしょうか? 悲観的な可能性として、50.000 の同時リクエストがあるとします。

SSL を使用して接続を保護するとどうなりますか? 接続ごとにオーバーヘッドを追加しすぎていませんか? それらを処理するためにシステムをスケーリングする必要がありますか?

あなたは私に何を提案しますか?

よろしくお願いします!

4

2 に答える 2

-3

nodejs アプリケーションはシングル スレッドになることに注意してください。つまり、同時リクエストの数を増やすと、パフォーマンスが大幅に低下します。

パフォーマンスを向上させるためにできることは、マシン上にあるコアごとにノード プロセスを作成することです。それらはすべてプロキシ (nginx など) の背後にあります。アプリに複数のマシンを使用することもできます。

memcache のみにリクエストを行う場合、API は劣化しません。しかし、mysql へのクエリを開始すると、他のリクエストのスロットリングが開始されます。

編集: コメントで示唆されているように、クラスターを使用してワーカー プロセスをフォークし、着信要求に対して相互に競合させることもできます。(ワーカーは別のスレッドで実行されるため、すべてのコアを使用できます)。 マルチコア マシン上の Node.js

于 2014-02-14T16:36:00.770 に答える