問題タブ [cluster-computing]
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.
java - クラスタ共有キャッシュ
複数の JVM 間でキャッシュを共有できる Java フレームワークを探しています。
私が必要とするのは、 Hazelcastのようなものですが、「分散」部分はありません。アイテムをキャッシュに追加して、他の「グループ メンバー」キャッシュに自動的に同期できるようにしたいと考えています。可能であれば、信頼できるマルチキャスト (または同様のもの) を介してキャッシュを同期したいと考えています。
私はShoalを見てきましたが、悲しいことに、「分散状態キャッシュ」は私のニーズに対して不十分な実装のようです.
私はJBoss Cacheを見てきましたが、私がしなければならないことには少しやり過ぎのようです。
私はJGroupsを見てきました。これは、私がしなければならないことにとって最も有望なツールのようです。JGroups の経験がある人はいますか? できれば、共有キャッシュとして使用した場合は?
他の提案はありますか?
ありがとう !
編集: Hazelcast と Infinispan のどちらかを決定するのに役立つテストを開始しています。すぐに回答を受け入れます。
EDIT : 要件が突然変更されたため、分散マップはもう必要ありません。低レベルのシグナリング フレームワークには JGroups を使用します。助けてくれてありがとう。
php - 負荷分散クラスター内の PHP セッション - どのように?
OK、それで、負荷分散された PHP Web サイトのこのまったく珍しいユニークなシナリオを手に入れました。残念なことに、以前は負荷分散されていませんでした。今、問題が発生し始めています...
現在、唯一の問題は PHP セッションにあります。当然のことながら、最初は誰もこの問題について考えていなかったので、PHP セッション構成はデフォルトのままにされました。したがって、両方のサーバーには独自のセッションファイルの小さな隠し場所があり、最初のサーバーで作成したセッションがないため、他のサーバーにスローされた次の要求を取得するユーザーは悲惨です。
今、私はこの状況を解決する方法について PHP のマニュアルを読んでいます。そこで の素敵な機能を見つけましたsession_set_save_handler()
。(偶然にも、SO に関するこのトピック) いいですね。ただし、Web サイトのすべてのページでこの関数を呼び出す必要があります。また、将来のページの開発者は、常にそれを呼び出すことも覚えておく必要があります。おそらく十数のベストコーディングプラクティスに違反していることは言うまでもありません。いくつかのグローバル構成オプションを反転させるだけで、セッションがすべて DB やメモリ キャッシュなどに魔法のように保存されれば、はるかに良いでしょう。
これを行う方法についてのアイデアはありますか?
追加:明確にするために - これは標準的な解決策による標準的な状況であると予想しています。参考までに - MySQL DB を利用できます。確かに、これを解決するすぐに使えるコードがそこにあるに違いありませんか? もちろん、私は独自のセッション保存機能を書くことができ、Greg
auto_prepend
が指摘したオプションは有望に思えますが、それは車輪の再発明のように感じます。:P
追加 2:ロード バランシングは DNS ベースです。これがどのように機能するかはわかりませんが、次のようになるはずです。
追加 3: OK、解決策の 1 つは、すべてのスクリプト
auto_prepend
に呼び出しを挿入するオプションを使用しsession_set_save_handler()
、独自の DB パーシスタを作成することです。おそらく、memcached
パフォーマンスを向上させるために呼び出しをスローします。けっこうだ。
これをすべて自分でコーディングしないようにする方法もありますか? よくテストされた有名な PHP プラグインが好きですか?
ずっと後で追加しました:これは私が最終的に行った方法です: PHP + MySQL でカスタム セッション パーシスタを適切に実装するにはどうすればよいですか?
また、すべてのページに手動でセッション ハンドラーを含めただけです。
scalability - スケーラブルなサイト
facebook、skype、myspaceなど...すべてに何百万ものユーザーがいますが、誰もが自分のアーキテクチャがどのように見えるか知っていますか。それは異なるノードに分散されていますか、それとも大規模なクラスターを使用していますか?
java - mysql の動作を高速化する
私は現在、10 個のノードを持つクラスターで mysql に対して Java プロジェクトを作成しています。プログラムは単にデータベースからいくつかの情報を引き出し、いくつかの計算を行ってから、いくつかのデータをデータベースにプッシュします。ただし、テーブルには何百万もの行があります。ジョブを分割してクラスター アーキテクチャを利用する方法はありますか? 異なるノードでマルチスレッドを実行するには?
cluster-computing - クラスタ化されたシステムで UDS (Unified Development Server) を使用したことのある人はいますか?
UDS (旧称 Forte 4GL) は、現在のシステムが実行されているプラットフォームです。これを Veritas クラスタに展開する方法を文書化したフォーラムでフラグを見つけたのを覚えています。しかし、最新のハードウェアが登場した今、そのメモは Google のどこにも見つかりません。
database - DB クラスタリングはどのように機能しますか?
そこにいる DBA に質問があります。1 つの Web/DB サーバーのセットアップから 2 つの Web/2 つの DB サーバーのセットアップにスケーリングし、Web サーバーの前にロード バランサーを配置して、受信クエリを均等にルーティングする場合...どのように解決策を講じますか? MySQL Cluster のように、1 つの DB サーバーに加えられた変更がすぐに他のサーバーに認識されるように (そうしないと、他の DB サーバーにルーティングされたユーザーはデータを表示しないか、古いデータになります)、または少なくとも他の Web サーバーが「ダーティデータ」を読み取っていることを認識し、最新のデータを取得するために X 秒後に再試行する必要がありますか?
ありがとうございました。
session - Tomcat session-cluster: 本番レベルですか? それはスケーリングしますか?
Tomcat セッション クラスタ ソリューションの使用経験があれば教えてください。生産レベルですか?それはスケーリングしますか?サーバー ファームで使用できますか? セッション クラスタに推奨する他のソリューションはありますか? (例: データベース、terracota、jgroups など)
tomcat - Tomcat クラスタリングと HTTPS の問題
私は Tomcat 6 の 2 つのインスタンスを持っており、コンテンツは HTTP と HTTPS を介して他のページにアクセスできます。
このようにインスタンスを構成しました:
- ポート 8080 (HTTP) および 8443 (HTTPS) でリッスンするインスタンス 1
- ポート 7080 (HTTP) および 7443 (HTTPS) でリッスンするインスタンス 2
クラスタリングを行うために、Apache 2.2 で mod_proxy を構成しました。
リクエストは適切に受信され、HTTP トラフィックに対してはすべて正常に機能しますが、アプリ内で HTTPS になると、Tomcat がページを提供しようとするとページが見つかりません。
ここで、ロード バランサをバイパスして 2 つの tomcat インスタンスに直接アクセスすると、すべて問題ありません。そのため、Tomcat では http/https が適切に構成されていますが、Apache では構成されていません。
これ(またはmod_proxy)を処理するには、Apacheを構成する必要があると感じています。
php - マスター データベースとの同期
別のサーバーでホストされている 2 つのデータベースがあります。マスターテーブルデータベースのすべての内容をスレーブデータベースのテーブルにコピーするにはどうすればよいですか? 私は master データベースの所有者ではありませんが、彼らは喜んでアクセスを許可します。マスター データベースからのデータが RSS 経由で出力される前に、私の PHP スクリプトはそれを解析して、別のデータベースが配置されている別のサーバーに挿入しますが、膨大なデータ コンテンツのために、データを更新してリモート データベースに挿入するのに 24 時間かかります。 2 つのデータベースのオーバーヘッド。そのため、マスター データベースからデータをダウンロードしてローカル コピーを保存し、次に FTP で 2 番目のサーバーにコンテンツをダンプするスクリプトを作成することを計画しています。ファイルのサイズが CSV または SQL のいずれかで約 30MB であり、まだ大きくなっているにもかかわらず、それは賢明ですか? これに対する最善の解決策は何ですか?
注: ダウンロードから FTP、2 番目のデータベースへの挿入までのすべてのスクリプトは、自動更新のために cron によって処理されます。
sql-server - SQLServerクラスター用の開発
SQL Serverクラスタリングを利用する環境向けに開発している場合、(もしあれば)何に注意する必要がありますか?
私が見てきたことから、データベース操作の例外を処理し、2つのオプションがあります。
- ユーザーに「再試行」を表示します。ユーザーが再試行するまでに、フェイルオーバーノードが起動しているはずです。
- 数秒待ってから、ユーザーに通知せずに再試行してください。
これは正しいです?これが私がする必要があるすべてですか?
これはASP.NETアプリですが、これがアプローチに大きな違いをもたらすとは思わない。
アドバイスをいただければ幸いです
ダンカン