問題タブ [high-load]
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.
caching - 非常に同時実行環境での NoSQL + 分散キャッシュのデータ整合性
スライドでは、予約システムの非常に大まかなアーキテクチャを見ることができます。多くのユーザーが一度に同じホテル/部屋を予約しようとする可能性がある、非常に並行的な環境です。
一番下には NoSQL データベースがあり、迅速な応答/要求のために、データを要求する分散キャッシュとアプリケーションがあります。
このスライドの考え方は、NoSQL + Distributed Cache を使用すると、同期の問題、つまりデータの整合性の問題が発生するということです。分散キャッシュを NoSQL db と同期する必要があります。
質問: IMDG 以外に、そのような場合に既に存在するソリューション/テクニックは何ですか? これは、フレームワークまたはベスト プラクティスの両方である可能性があります。この問題を解決する特定の分散キャッシュはありますか?
質問 2 [更新]:キャッシュではなく NoSQL データベースに書き込む理由は何ですか? それはトランザクションですか、ノード障害の可能性ですか、それとも何か他のものですか?
PSこれは私のスライドではありません。著者は、これは IMDG の優れた使用例であると主張しています。

php - 高負荷プロジェクトのフルスタック フレームワークで PHP を使用するのは悪い考えですか?
PHP コードがバイトコードにコンパイルされ、実行のたびに (つまり、すべてのページ要求で) 再実行されることを私は知っています。そのため、エンジンはすべてのリクエストで、使用されているすべてのクラス、関数、変数などを再定義する必要があります。
Laravel や CakePHP などのフルスタック フレームワークを使用する場合、これは、構成ファイルの解析、ルートの登録、クラスの自動ロードなど、すべてのリクエストで同じブートストラップ作業が何度も行われることも意味します。
これは、そのようなものを処理するための非常に不適切な方法のようです。また、OPcache やフレームワーク キャッシング システムなどのキャッシングも、スクリプトを実行する必要があるため、十分には役に立ちません。
一方、NodeJS や Ruby などのエンジンに基づくアプリケーションは、起動時に 1 回だけコンパイルおよびブートストラップされます。したがって、PHP よりも優れたスケーラビリティーを備えているはずだと思います。
しかし、PHP は非常に人気があり、Facebook でさえ使用しています。では、負荷が高い可能性がある Web サイトの正しい選択は何だろうか? そのような目的でフルスタック フレームワークで PHP を使用するのは悪い考えですか?
php - PHP を使用して高負荷で Mysql 整数フィールドをインクリメントする方法
次の問題が発生しました: mysql テーブルの 1 つの列をインクリメントしようとすると、トラフィックの負荷が高いと値が同期しなくなります。
タスクは、列をインクリメントすることと、別のテーブルに新しい行を追加することの 2 つに分割されます。したがって、100 行を追加すると、カウンターは 100 のままになります。
100リクエスト/秒などの高負荷では、カウンターに問題が発生し、カウンター値で80を取得しましたが、120行が追加されました。
問題は、一部のリクエストが他のリクエストよりも速く処理され、値を上書きする可能性があることだと思います。誰かが私を正しい方向に向けるのを手伝ってくれるか、この問題を解決する方法を提案してくれることを願っています.
ベスト、ニルス
java - 高速ツリー評価
私は評価ツリークラスを持っています。各ノードには厳密な順序で子があります。サーバーには、そのようなツリーのリストがあります。
HashMapsクライアントがサーバーに正常に接続すると、計算のために選択されたツリーにさまざまなものが送信されます。典型的なHashMaps には、[変数文字列名、変数 int 値] のペアがあります。
それぞれTreeNodeに複雑な条件があり、変数を読み取ったり、AND、OR、XOR などの演算を行ったり、他の変数や数値と比較したりできます。それぞれTreeNodeにステートメントもあり、変数を読み書きしたり、新しい変数をHashMaps に配置したりできます。これは、後で別の で読み書きできますTreeNode。
ツリーの単純化された構造を次に示します。
HashMap私のコードは現在、100 個のノードを持つツリーと10 個の変数を持つ入力に対して、Intel i7 u3517 で約 200000 回/秒の反復を実行します。どうすれば高速化できますか?
javascript - 1 つの get メソッドでタグオブジェクトを複製する方法は?
1ページにsvg画像データのクローンタグオブジェクトを作る方法。サーバーへの get メソッドが多くない場合。対象ページのサンプル
このサンプルは、graph.svg への多数の get 要求を使用して、graph.svg を取得します。最初のリクエストでは結果 200 が表示され、その後はすべて結果 304 が表示されますが、次のものが 1 回も必要ありません。
attr 宣言を見つけましたが、次のコードは #tg1 の attr データでは機能しません。
data attr では、tg1 は次の get 要求を送信します。
html、wo jsでこれを行うにはどうすればよいですか。現在のページから相対 uri ~like xpath でデータを受け取ることは可能ですか?
graph.svg は自己レンダリング イメージです。div のシャドウ ルート (現在はバリアントではありません) で作業できます。1 つの方法である場合 - JS を使用するには、どのように XMLHttpRequest の結果をタグ オブジェクトのドキュメントに入れることができますか?
document.querySelector("...") などの要素を使用した構築。contentWindow/contentDocument/document/window/innerHTML = ... うまくいきません。
js の場合 - jquery やその他のフレームワークではなく、純粋な js でのソリューションが必要です。ファイアフォックス/クローム。
ruby-on-rails - バックグラウンダー アーキテクチャを備えたハイロード Rails サーバー
これが私の仕事です。2 つおきのバックグラウンダー タスクは、何らかのデータに基づいて json を生成する必要があります。この操作は CPU を集中的に使用するものではなく (主にネットワーク)、JSON コンテンツ (5 ~ 10KB) を生成します。操作には約 200ms かかります。
また、数秒に 1 回、約 1000 のクライアントがこのコンテンツを要求しています。約 200 リクエスト/秒としましょう。
サーバーは現在の実際のjsonを出力するだけです。
現在、この作業に関連する他の仕事をしているレール4 + nginx + passenger + debianサーバーがすでにあります。
学生であるため、次の方法で簡単にスケーリングできる最も費用対効果の高い方法でサーバーを作成したいと考えています。
- バックグラウンダー ジョブをいくつか追加し、より多くの json を生成する
- リクエスト数を 1 秒あたり 10,000 に増やす
現在、2 つの CPU コアを搭載した linode 2048 ssd を使用しています。私の質問は次のとおりです。
- バックグラウンダー タスクにどの gem/solution を使用すればよいですか (現在は ruby で記述されています)
- 実際の json を効果的に保存し、バックグラウンダーから rails/nginx に渡す方法。
- json をできるだけ速く提供する方法。
elasticsearch - Logstash/Elasticsearch/Kibana リソース プランニング
負荷に応じてリソース (elasticsearch インスタンスと思われます) を計画する方法:
負荷とは、約 500K イベント/分を意味し、それぞれに 8 ~ 10 フィールドが含まれます。
どの設定ノブを回す必要がありますか? 私はこのスタックが初めてです。