問題タブ [high-traffic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
197 参照

node.js - Nodejs - クラスター化されたマイクロサービスへの高トラフィックの問題

小説ですみません…

複数のファイルで何百万ものエンベロープを復号化する必要がある Nodejs プロジェクトに取り組んでいます。アプリケーションのすべての API は、localhost で実行する必要があります。

メイン API は、ファイルのバッチを復号化するためのクライアント リクエストを処理します。各ファイルには、復号化が必要な数千から数百万のエンベロープが含まれています。各ファイルはジョブと見なされ、これらのジョブはメイン API によってキューに入れられ、各ジョブの新しいプロセスをフォークすることによって同時に実行されます。(一度に 5 つの同時ジョブ/フォークのみを許可します) 各プロセスで、ファイルを通過して復号化するスクリプトが実行されます。

これは比較的迅速に実行されますが、メイン API によってフォークされた各プロセス/スクリプトのコードで復号化を行う代わりに、基本的にリクエスト内のエンベロープを取得して送信する別の API (Decrypt API と呼びます) にこの作業を提供したいと考えています。応答で復号化された結果を返します。

そこで、この API を作成し、「forky」を使用してクラスター化しました。次に、プロセスで復号化を行う代わりに、Decrypt API に対して複数の並列リクエストを作成し、応答が返ってきたら、復号化された結果をファイルに配置します。

最初の問題は、次の封筒を送信する前にリクエストが返されるのを待たずに、各封筒を受け取ったときに正しくリクエストを作成したことでした。基本的に、必要に応じて「並列」リクエストを送信し、各リクエストのコールバックで投票を処理します。これにより、ECONNRESET エラーが発生したため、一度に未処理のリクエストが多すぎると思われます。いくつかのリクエストがドロップされました。したがって、私の解決策は、同時要求が多すぎるのを避けるために、一度に最大 x 個の未処理の要求 (私は 10 を使用) を持つことでした。これは問題ないように見えましたが、MainAPI から 5 つのプロセスをフォークしていたので気付きました。それぞれにこの新しい「未処理の要求」制限コードがありましたが、それらは同時に実行されていたため、一度に要求が多すぎるという問題にまだ遭遇していました。復号化 API。また、2 つの異なるマイクロサービス/API を使用するこの方法は、MainAPI のフォークされたプロセスで復号化を行うよりも遅くなります。Decrypt API では、ノードの 'crypto' ライブラリも使用しており、使用する関数の一部は同期的であるため、トラフィックが多いと問題になると思われますが、これらの同期方法を回避することはできません。

最後に、私の質問は、説明したように高トラフィックで Decrypt API の速度を上げるにはどうすればよいですか? また、これらの要求がドロップされないようにするにはどうすればよいでしょうか?

初心者のように聞こえるかもしれませんが、これらの API はすべて同じマシンとローカルホストで実行されているため、この方法が各プロセスで復号化を行うよりも遅いのはこのためでしょうか?

ありがとう!

0 投票する
1 に答える
965 参照

performance - 複雑なブラウザ ゲーム Web サイトの Laravel

Laravel のパフォーマンスについては多くのことが書かれています。高速なアプリケーションに関して言えば、これは最高のフレームワークではありませんが、多くのオプションと優れたコミュニティとドキュメントがあります。Laravelが私の状況に合っているかどうか知りたいです:

私は現在、世界中の何千人もの訪問者がプレイできるブラウザゲームを開発しています。同時に 3000 人を超える同時ユーザーが存在する可能性があります。ビュー、ルーティング、セッション管理、認証、データベース接続、cronjobs など、さまざまなモジュールが必要なため、アプリケーションは少し重くなります。これは非常に動的なゲームであるため、アプリケーションは何度もロードされます。そして: たくさんの専用サーバーに投資するほどのお金はありません (少なくとも最初のうちは)。

私は他のフレームワークにも目を向けました。Lumen、Slim、およびその他のいくつかのマイクロ フレームワークは、私のゲームに必要なすべてのモジュールをサポートしていないため、Laravel は良い選択だと思います。しかし、私が見るベンチマークは本当に怖いです。Laravel は、他のフレームワークと比較すると見栄えがよくありません。遅く、多くのメモリを消費し、多くのリクエストを処理できません。

だから私の質問: Laravel は、何千もの同時ユーザーの可能性がある重いブラウザゲームの Web サイトに適していますか? キャッシングとホームステッドは確かに役に立ちますが、Laravel は良い選択でしょうか、それとも本当に優れたフレームワークがあるのでしょうか?

0 投票する
1 に答える
872 参照

wordpress - トラフィックの多い Web サイトのホスティング/サーバー

1 日あたりの平均トラフィックが ~250,000 セッション (~130,000 のユニーク ユーザー) の Wordpress Web サイトに推奨されるセットアップはどれですか。ピーク時は 1 時間あたり最大 25,000 ユーザー、ピーク時以外は 1 時間あたり最大 10 ~ 17,000 ユーザーを獲得できます。月間帯域幅は最大 14 TB です。

最適なセットアップについての提案をお待ちしております: 注: cpanel サーバー (apache) である必要があります。

  • サーバー - クラウドまたは専用 (Google クラウドと amazon を除くすべて)
  • CPU/メモリ/など?
  • CDN ?
  • Apache/MySQL 固有のセットアップ?
  • 高可用性?
  • その他の提案

アドバイスをいただければ幸いです

0 投票する
1 に答える
433 参照

java - 着信要求の接続タイムアウトを設定するように Spring Boot API を構成する方法はありますか?

高トラフィック SpringBoot アプリケーションを Wildfly 10 にデプロイしました。このアプリケーションのサーバー アーキテクチャは、nginx (Angular アプリケーション) -> (リバース プロキシ) -> wildfly サーバーです。時間帯はトラフィックが多いため、nginx が一定時間後に接続を閉じるため、8080 ポート (wildfly アプリケーション ポート) は CLOSE_WAIT のままです。

リクエスト時間が 5 秒を超える場合、接続を閉じるように Spring Boot アプリケーションを構成しようとしています。

例:

test2 Get HTTP メソッドの場合、スプリング ブート アプリケーション/Wildfly/centos を構成して、着信要求の接続タイムアウトを設定する方法はありますか?