問題タブ [horizontal-scaling]
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.
design-patterns - 水平スケーリングとデザイン パターン
よく知られている効率的な水平方向のスケーリング パターンについて、重要でわかりやすい論文やドキュメントがあるかどうかを尋ねたかったのです。クラウド上 (Amazon WS など) で水平方向にスケーリングできるアプリケーションを設計したいと考えています。特に自動的にスケーリングするアプリケーション (NoSQL ソリューション、ドキュメント データベースなど) から、業界で受け入れられている設計パターンはありますか? 一例は、REDIS のワン マスター マルチ リーダー アプローチです。
ありがとうございました
elasticsearch - Elasticsearch で書き込みとインデックスのサイズを動的にスケーリングする方法は?
私は現在、膨大なドキュメント データをアーカイブし、Web 検索エンジンを提供するためのソリューションを模索しています。最初に検索エンジン ソリューションを探して検索を開始しましたが、大量のデータを処理する必要がある場合、Elasticsearch が最適なソリューションの 1 つであるという結論に達しました。簡単にスケーリングでき、箱から出してすぐに使用できることを読んで、確信しました。
次に、No SQL データベースについて調べました。アクターの数が多かったため、検索により多くの時間を費やしました。いくつかのリソース (SQL 蒸留なし、Amazon Dynamo の論文、Google BigTable の論文など) を読んだことで、より良い方法にたどり着きました。一般的な分散システムの理解。また、ほとんどの No SQL スケーラブル データベースには、シャードが大きくなりすぎたときに、シャードを 2 つのシャードに自動的に分割する機能があることも確認しました。
その後、Elasticsearch がこの機能を提供していないことに気付きました。さらに、ドキュメントを信じて: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-update-settings.html
作成後にインデックスのシャード数を増やすことはできません。だからこれは私の質問をもたらします:
予想されるトラフィック/データ量に対してシャード数を指定してインデックスを作成し、ある日、予想を超えて、書き込み要求とインデックスのサイズを処理するのに十分なシャードがなくなったとします。この状況をどのように管理できますか?
c# - Exchange Web サービスにサブスクライブするサービス プロセスを水平方向にスケーリングする方法に関するパターンはありますか?
サービス プロセスを複数のサーバーで実行できるようにすることで、サービス プロセスを水平方向に拡張する方法について、アイデアをいただきたいと思います。これは C# で記述された Windows サービスであり、その目的は、当社の Exchange Web サービス (EWS) にサブスクライブして、新しい受信メール メッセージがあるたびに (HTTP コールバック経由で) 通知を受けることです。次に、サービスは電子メール メッセージを取得して処理し、可能であれば返信を送信してから、スリープ状態に戻り、次の受信電子メールを待ちます。
複数のマシンで実行する場合、すべてのマシンを EWS 通知にサブスクライブさせるか、そのうちの 1 つだけをサブスクライブさせることができます。それらすべてを購読させると、MS Exchange インフラストラクチャに負担がかかる可能性があるため、少し躊躇します。また、これにより、すべてのマシンが電子メールを受信して処理することになります。送信者が特定の要求メッセージに対して N 回 (N はファーム内のサーバーの数) 応答を受け取ることは望ましくありません。EWS にサブスクライブしているマシンが 1 台しかない場合、単一障害点にさらされることになります。
これに対処する方法についてあなたの提案を聞きたいです。複数のサーバーに電子メール メッセージを分散させて受信メッセージを処理させたいと思っています (おそらく、メッセージ キュー サーバーを使用してこれを行う必要があります)。ありがとう。
java - 水平方向にスケーラブルな Web アプリのモジュール間の同期 IPC
私は、水平方向のスケーラビリティを念頭に置いて、主に Web API であるモジュラー Web アプリを設計しています。私の問題は、一部のタスクではデータを同期的に交換するために 2 つ以上のモジュールが必要ですが、これが Web アプリの水平方向のスケーラビリティに影響を与えたくないということです。非同期でそれを行うことができれば、確かにキューを使用しますが、同期通信では何を使用すればよいか正確にはわかりません。水平方向のスケーラビリティを損なわない、Web アプリ モジュール間の同期通信に関する事実上の標準または少なくともいくつかのベスト プラクティスはありますか?
ちなみに、このアプリのデモも PHP でコーディングしましたが、すぐに Java に移行する予定です。ただし、解決策は言語に依存しない必要があります。
ありがとう
java - Dropwizard: 複数の dropwizard インスタンスの処理
Dropwizard を使用してマイクロサービスを開発しているので、Dropwizard の 1 つの実行中のインスタンス/アプリケーションと多数のインスタンスで多くのリソースを持つことのバランスを見つけようとしています。
たとえば、3 つのリソースを持つ project-A があります。別のプロジェクト B で、プロジェクト A のリソースの 1 つを使用したいと考えています。共通のリソースは、ユーザー データに関連しています。今私は次のようなオプションがあります:
- project-B から project-A のユーザー リソースへの http 呼び出しを行います。ここでdropwizardのクライアントアプローチを使用できます
- ユーザー リソースは共通であるため、project-A から取り出して project-C と言うことができます。そして、プロジェクト A とプロジェクト B の両方でクライアント コードを作成する必要があります。
- ユーザー コードを含む jar を抽出し、プロジェクト B で使用できます。これにより、http 呼び出しが回避されます。
専門家の意見を聞きたいもう 1 つの点は、マイクロサービスの異なるインスタンス間の通信に関連するネットワーク呼び出しのバランスを取り、最小化する方法です。一般に、異なるインスタンス間の通信には http を使用する必要がありますか? または、他のプロセス間通信アプローチをパフォーマンス自体に使用できますか[特に、異なるインスタンスが同じシステム上にある場合]?
これは、マイクロサービスの世界の新規参入者にとって一般的な問題/混乱になる可能性があると思います. したがって、一般的なガイドラインやベストプラクティスを知りたい.
どうもありがとう
プラディープ
alignment - Gnuplot は x 軸をシフトしました
こんにちは、3 つのファイルに次の gnuplot サンプル データがあります。
これで、次の gnuplot コマンドが作成されました。
これにより、次の出力ファイルが生成されます。
ここで、x 軸の 0 ~ 100 の値が正しくシフトされていないことがわかります。コードにエラーが見られる人はいますか?
routing - CouchDB: データを受信するシャードの制御
私の理解では、ドキュメントの一意の ID をハッシュすることによって、クラスター内の各ノードがデータを均等に分散するようにします。私の質問は、これを変更して、クラスター内の特定のノードにドキュメントを「インテリジェントに」ルーティングするためのカスタム キーを定義する方法があるかどうかです。
私のシナリオでは、すべてのデータにわたって特定のエンティティ (client-project-task-item を考えてください) に関連するデータがあります。水平スケーリングを必要とするのに十分なアイテムがあります。ただし、各検索は常に、データ セットのサイズが中程度の特定のクライアント プロジェクト タスクに関連しています。
最も効率的な方法は、クライアント プロジェクト タスクごとにデータを分割し、たとえば 1000 個のパーティションを事前に割り当てることだと思います。
ある時点でこれが私のスケーリング能力を制限することを理解していますが、すべての検索ですべてのパーティションをヒットする必要がないというトレードオフは、私が喜んで支払うものになります.
では、CouchDb でこのタイプのパーティショニング ロジックを作成する方法はありますか?
ありがとう; ブレント
html - テキストがナビゲーション バーの水平中央にない /
半分のサイズにする方法 / ナビゲーション バーのテキスト間のスペースが多すぎる
ここに私のウェブサイトがあります: http://gyazo.com/56e069ebf8b5bd61ee30523886180b88
ナビゲーション バーには多くの問題があります。
ホバーによって示されるように、テキストまたはナビゲーション バーが水平方向の中央に配置されていないことがわかります (上下で同じです)。
テキスト間のスペースが多すぎます (このスペースは、強調表示またはホバリング時にテキストが動き回らずに機能することがわかった唯一の方法です。
ドロップダウン メニューの <.br> の間隔が広すぎます。
1.の場合、テキストまたはナビゲーションバー(原因がわからない)を中央に配置して、ホバーがより均等に(水平に)見えるようにする方法はありますか
2.同じパディング設定を維持しながら、テキスト間のギャップを埋める方法はありますか?ホバー機能を使用してもテキストが移動しません。
そして3. <.br> に現在使用しているスペースの半分を持たせる方法はありますか
それが役立つ場合は、jsfiddleも追加しました:http://jsfiddle.net/d1a5eshs/
ナビゲーション バーの HTML コード:
ナビゲーション バーの CSS は次のとおりです。