問題タブ [distributed-system]
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 - Message Bus / Command Dispatcher パターンに関する混乱
最近、私は分散型メッセージングとそれに関連するパターンについて多くのことを読んでいます。たとえばNServiceBusなどのツールでサポートされているものをいくつか使用しました。
それらのパターンの多くは、インターネット上で説明されています。私が最近読んだそれらのいくつかは次のとおりです。
- メッセージ ブローカー: http://msdn.microsoft.com/en-us/library/ff648849.aspx
- メッセージ バス : http://msdn.microsoft.com/en-us/library/ms978583.aspx
- SOA のメッセージング パターン: http://msdn.microsoft.com/en-us/library/aa480027.aspx
- 相違点に関する Udi Dahan の投稿 : http://www.udidahan.com/2011/03/24/bus-and-broker-pubsub-differences/
NService バスなどのツールを使用すると、インフラストラクチャの問題についてあまり考えずに多くのことを実行できる場合、基本的なメッセージ バスとコマンド ハンドラーを実装しようとしたときに、いくつかの疑問が生じました。実際、これらのパターンに関しては、それらの間に多くの違いは見られません。
長いのでコードは貼りませんが、私が話したい実装のアイデアをよく説明している 2 つのブログ投稿を見つけました。
アイデアは単純です。メッセージ バスはサブスクライバーを追跡し、関心があれば別のサブスクライバーにメッセージをディスパッチします。
メッセージバスによく似ています。コマンド バスは、特定のコマンド タイプのコマンド ハンドラを呼び出します。
したがって、どちらの場合も類似点があります。
あるパターンを別のパターンと使用した場合の実際の違いと利点は何ですか (ツールのサポートについて話しているのではありません)。何が欠けていますか?
2番目の質問はです。サポートツールなしでメッセージバスは価値がありますか? すべてのテナントへのサポートを単独で推進するつもりはありません。
長くて紛らわしい質問で申し訳ありませんが、詳細については遠慮なくお尋ねください。
java - KeyValueStore インターフェイス
こんにちは、次のインターフェイスがあります。
そして、以前のインターフェースを実装する次のクライアントがあります。
特定のインターフェイスと対話するためにクライアントを実装するにはどうすればよいですか? これをクライアント サーバー アーキテクチャで実現したいと考えています。
もう 1 つ欲しいのは、データがどこに保存されているかを知る「ネーム サーバー」 (基本的には「ストレージ サーバー」へのキーのマッピングを持っている) と、データが実際に永続化される他のいくつかのサーバーです。
c# - サーバーファーム(asp.net)のロック
MySQLクラスターのような分散サーバーを使用して、複数のサーバーに展開されているasp.netWebアプリケーションで「ロック」を実行できる方法があるかどうかを知りたいです。
たとえば、アカウントの残高を更新する典型的な例を考えてみましょう。2つのリクエストで同じアカウント残高を同時に更新することはできません。例えば:
メンバー1の口座残高は100です。
- リクエストAはサーバー1にアクセスして、メンバー1の残高に100を追加します
- リクエストBはサーバー2にアクセスして、メンバー1の残高に50を追加します
したがって、リクエストAは残高を100から200に更新し、保存します。
リクエストBは残高を150に更新し、保存します。
これらはすべてまったく同時に発生するため、最終結果は250になるはずなので、情報が失われます。
リクエストBが残高を取得するまでリクエストAが終了するまで待機する必要があるように、どのようにロックできますか。単一のプロセスの場合、これはアプリケーション全体のロックによって実装できます。ただし、複数の独立したプロセスがあるため、これはサーバー1の場合は機能せず、ロックされておらず、サーバー2も機能しません。
これをどのように行うことができるかについてのアイデアやベストプラクティスはありますか?
hadoop - Interesting projects based on Distributed/Operating Systems
I would like to know some interesting challenges based on distributed systems that could be solved within the time frame of a quarter (my university follows quarter system!). I am hoping to work on a single project that would satisfy both an Operating Systems course as well as a Distributed Systems course so that I would have plenty of time to work on it (as I have taken both courses!). I am looking for a strong programming component. Could anybody point me in the right direction? I know Hadoop/map-reduce is the hot stuff but I would appreciate it if someone suggested solvable challenges in the field of virtual machines.
filesystems - 一定時間のクローン作成をサポートする任意の分散ファイル システム
- lustre、または google file system(GFS) は、ファイルをいくつかの種類のブロックに分割し、さまざまなノードに保存します。そのため、スケーラビリティと分散トラフィックを実現できます。
- ZFS、btrfs、wafl はコンスタント タイム クローニングをサポートします。これにより、クローン作成速度、書き込み可能なスナップショット、ストレージ サイズの節約を実現できます。
上記の 2 つの機能をサポートするファイル システムを作成しています。
一定時間のクローン作成をサポートするファイルシステムはたくさんありますが。しかし、一定時間のクローン作成をサポートできる分散ファイル システムが見つかりません。光沢チームは、zfs をサポートする光沢を開発しているように見えます (クローン作成もサポートしています)。しかし、それはまだ明らかにされています(さらに、2.0ベータは含まれていません。おそらく、すぐには明らかにされないでしょう)。Nexenta ストレージは「namespace nfs」によってこれらの機能をサポートしているように見えました。しかし、そうではありませんでした。ファイルレベルの配布によってファイルを配布するだけです。つまり、あるファイルが 1 つのノードのボリュームのサイズを超えると、それを処理できなくなります。多くのクローン化されたファイルが大きなファイルに成長した場合、それらはそれを処理できません(少なくとも、元のファイルを他のノードに実際にコピーする必要があります(ノードをシャドーイングしないでください)。おそらく、SANディスクをZFSノードのzボリュームに接続できます。しかし、私'
そのため、上記の 2 つの問題を処理できるファイル システムまたはソリューションを探しています。
architecture - EJBを使用して配布しますか、それとも複製しますか?
私は、EJBを使用すると、EJBを介して機能を公開するモジュールを使用してアプリケーションを分散できることを読みました。しかし、ここで述べたような欠点があるようです。では、ソフトウェアを壊して複数のマシンで実行するよりも、同じソフトウェアを複数のマシンで実行する方がよいのでしょうか。
python - 分散状態
接続されたクライアントに関する情報を共有できるようにする必要がある、すべてWANリンク(中程度の帯域幅、より高い遅延)を介して接続された少数のサーバーがあります。各クライアントは、「メッシュ」内の任意のサーバーに接続できます。各サーバーがホストおよび更新できる、ある種の分散データベースを探しています。各サーバーが長期間オフラインになっている場合は、各サーバーが現在の状態で更新できることが重要です。
何も見つからない場合は、すべてのサーバーが挿入できるMySQLDBをホストするサーバーを選択することもできます。しかし、可能であれば、これを単一障害点として削除したいと思います。(およびスレーブをマスターに昇格させることに関連するダウンタイム)
以前に使用したことがあり、推奨するシングルマスターの分散データストアはありますか?
いずれかのソリューションにPythonインターフェイスがある場合に最も役立ちます。
solr - SOLR での分散検索
既存の lucene インデックスに対して分散検索を実行するために、SOLR 1.3.0 を使用しています。問題は、検索後にどのシャードから結果が得られたかを見つける方法はありますか?
PS : REST API を使用しています。
java - rmiregistry を開始しても機能しない
rmiregistry の起動で問題が発生しました
コマンド ラインに start rmiregistry と入力すると、エラーが返されます。
java.rmi.RemoteException: エクスポートに失敗しました: クラス gnu.java.rmi.dgc.DGCImpl at 0x00418dde (不明なソース) at 0x004192d2 (不明なソース) at 0x00443aa4 (不明なソース) at 0x0040984d (不明なソース) at 0x0040989a (不明なソース) at 0x00409090 (不明なソース) at 0x00468c70 (不明なソース) 0x00468d37 (不明なソース) 0x0040906c (不明なソース) 0x0040ac05 (不明なソース) 0x00401a80 (不明なソース) 0x0040cb73 (不明なソース) 0x0040cbae (不明なソース) 0x00401733 (4 d00601)未知のソース) 0x00416afe (未知のソース) 0x0041f220 (未知のソース) 0x004033f7 (未知のソース) 0x00401328 (未知のソース) 0x00401247 (未知のソース) 0x00401294 (未知のソース) 0x758fd305 で未知のソース (未知のソース) )0x770e15ff (不明なソース) 0x770e15d2 (不明なソース)
環境変数が正しいjdk/jreを指していることを確認する解決策を見てきましたが、それを行ったのでうまくいくはずです....しかし、うまくいきません。
私が考えることができる唯一の他のことは、私が大学のプロキシにいるということです.
Ta さん、お返事をお待ちしております