2009-08-06 38 views
5

私はシナリオに従うソフトウェアプログラムを構築しています:分散システム、最高のフレームワーク?

私は多くのコンピュータを持ち、それぞれを1つのクラスタに追加しています。 クラスタ内の各コンピュータは、分散テーブル(ディクショナリ、ハッシュマップ、十分に速いはずです)にファイルを追加できます。

ここで、グループ/クラスタにはどのファイルが含まれているのか誰もが見ることができます。 グループ/クラスタのコンピュータがファイルを要求しました。彼は分散テーブルからファイルに関するすべての情報にアクセスすることができます(どのコンピュータ上でファイルなどを見つけることができますか?)。

いくつかのメカニズムによって、ポイントB(ファイルを持つコンピュータ)からポイントA(ファイルを要求したコンピュータ)にファイルを取得する必要があります。

基本的にデータ複製を行う必要があります。 (しかし、非常に大きなファイルの場合)

ですから、おそらくこのクイが求めているもの、今では不思議、ここにある:

データ複製が可能な限り高速である必要があります。最善のアプローチは何でしょうか?フラックスネットワークのようなものを考えました。

シナリオに従ってソフトウェアに使用するには、どのようなフレームワークが最適でしょうか?

私はJavaフレームワークを検索しています:)。 (私はクロスプラットフォームを実行する必要がありました)

ありがとう!

+0

解決策を見つけた場合は、質問を回答して&マークするのを忘れないでください! –

答えて

0

あなたが探しているように見えます:Project Voldemortまたは他のKey=>Value datastores which automatic failover, replicationなど

+0

私はそれをよく見ていきます。それは私の選択です。それは非常に使いやすいですhttp://code.google.com/docreader/#p=hazelcast&s=hazelcast&t=hazelcast :Hazelcastは「)(ストア」として、持続性の機能を備えていますので –

+0

は、それはまた、オプションです! –

1

JXTAは、ここではSunのJavaピア・ツー・ピアフレームワークであり、使用の可能性が高いです。

またはJiniをチェックしてください。サービスリース、ダイナミックディスカバリー、およびプロトコルに依存しないクライアント/サーバー通信の機能があります。私はあなたと確信しているとして、あなたは

+0

はい、ピアツーピアですが、私は分散データ構造を実装したくありません。 –

+0

データ構造報告マシンBにファイルがあるという問題がありますが、マシンBがダウンするとどうなりますか? –

+0

私はJGroupsと呼ばれるフレームワークを見つけました。それについて聞いたことがありますか? –

4

(ただし、私はここではスペースの妥当性についてはよく分からない)(?このケースでは、あなたのファイル名を)特定の属性を持つ各サービスを公開、または多分Javaspacesでそれを使用することができますジニを使用しますこの種の邪魔されたマップを実装できるようにするJava用のライブラリがたくさんあることを発見しました。

  • Hazelcast - 使用して本当に簡単新顔、およびConcurrentMapが
  • JGroupsのような標準的なJavaインタフェースのimplmentations提供 - グループメッセージングのための本当にただのライブラリが、DisturbutedHashMap実装
  • jBoss Cacheを含んで - 建てをJGroupsの上部に
  • Terracottaオプションの永続性との取引でより完全disturbutedキャッシュシステムを提供 - ビッグ、非常に人気の、商業的にサポートを
  • Oracle Coherence - それらすべてのパパ、

に一致するように値札をより(かなり多くの)があり、現時点では私の個人的な好みはHazelcastでそれが始めるためにめちゃくちゃ簡単です。私が列挙したキャッシングフレームワークはすべて、(少なくとも一時的に)エントリ全体をメモリに読み込むことができるかどうかに依存しています。これは、大きなファイルの内容をそれら。

あなたの場合は、障害データマップを使用して、場所データ、つまり、particalarファイルがある他のノードに伝えるためのデータをある程度保存してから、そのノードに直接移動します。 HTTP。

0

分散ハッシュマップについては、上記のいくつかの良い答えがあります。

可能であれば、実際にファイルをコピーするには、何もコピーせずに共有ストレージソリューションをいくつか持っていることをお勧めします。コンピュータごとに個別のディスクを使用する必要がある場合は、各コンピュータにFTPサーバーを設定するなどの簡単な作業が必要です。これはJavaベースである必要はありませんが、Javaのみのソリューションが必要な場合はApache MINAのようなものが動作します。

関連する問題