アプリケーションのグリッド/クラスター対応に最適な Java ライブラリは何ですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/383920

質問

これは、負荷を分散し、追加の冗長性を提供することを目的として、サーバーのクラスター上でアプリケーションを実行する機能です。

のプレゼンテーションを見てきました グリッドゲイン そして私はそれにとても感銘を受けました。

他に知っている人はいますか?

役に立ちましたか?

解決

いくつかあります:

現在、これらすべてを使用したわけではありませんが、大部分を使用または調査しました。

GridGain と GigaSpaces は、より中心的なものになります。 グリッドコンピューティング キャッシュよりも、(個人的には)データ グリッドよりも計算グリッドに最適です(「 コンピューティング グリッドとデータ グリッドの説明)。GigaSpaces は非常に興味深いテクノロジーだと思います。GigaSpaces には、スタートアップ向けの無料バージョンや無料の完全バージョンなど、いくつかのライセンス オプションがあります。

Coherence と Terracotta はキャッシュを次のように扱おうとします。 地図, 、これはかなり自然な抽象化です。私は Coherence をよく使ってきましたが、これは優れた高性能製品ですが、安くはありません。あまり馴染みのないテラコッタ。Coherence のドキュメントは時々少し不足しているように感じますが、本当に強力な製品です。

OSCache は非常にきちんとした JSP タグを備えているため、Java Web アプリケーションのメモリ使用量と断片化を軽減する手段として主に使用してきました。コンパイルされた JSP を見たことがあれば、多くの文字列連結が行われていることがわかるでしょう。このタグを使用すると、JSP コードと HTML のセグメントの結果を単一の文字列に効果的にキャッシュできるため、場合によってはパフォーマンスが大幅に向上します。

EHCache は、Web アプリケーションでも使用した簡単なキャッシュ ソリューションです。決して分散キャッシュとしては使用できませんが、それは可能です。私はそれを手っ取り早く汚い解決策とみなす傾向がありますが、それはおそらく私の偏見です。

memcached は、PHP の世界で特に普及しています (Facebook などのサイトでも使用されています)。これは非常に軽量で簡単なソリューションであり、同じプロセスで実行されないという利点があり、これが重要である場合には、他のテクノロジー スタックとの相互運用性オプションがおそらくより優れています。

他のヒント

また、Hazelcastをチェックアウトすることができます。 Hazelcast のあるオープンソースのトランザクション、キュー、トピック、マップ、セット、リスト、ロックおよびエグゼキュータの分散/パーティションの実装サービス。で動作する超簡単です。ちょうどあなたのクラスパスにhazelcast.jarを追加し、コーディングを開始。ほとんどの設定が必要です。

あなたが分散的にあなたのRunnableを、呼び出し可能なタスクを実行することに興味がある場合は、

、そして<のhref =「http://code.google.com/docreader/#p=hazelcast」で配布エグゼキュータ・サービスのドキュメントをご覧くださいREL = "noreferrer"> http://code.google.com/docreader/#p=hazelcast の

Hazelcast のApacheライセンスの下でリリースし、エンタープライズグレードのサポートも用意されている。

検討しましたか インフィニスパン?これは、JBoss.org のオープンソース データ グリッド プラットフォームです。詳細については、これを読むことをお勧めします(古い) ブログ投稿 プロジェクトの発表と、注目すべき興味深いブログ投稿を発表します。 Hibernate で Infinispan を使用する そしてとして スタンドアロンキャッシュ. 。さらに最近では、 Red Hat のエンタープライズ データ グリッド. 。がある 簡単な「入門」ガイド, 、そして Dゾーン参照カード も、さえ YouTube ビデオ :)

@cletus のまとめはかなり良いと思います。Terracotta はマップの形式で分散キャッシュを提供するだけではなく、それ以上のものを提供することにも触れておきたかったのです。Java ヒープと同期プリミティブをクラスター化し、並行 Java プログラムを分散 Java プログラムに変換します。これを使用してキャッシュ (オープンソース キャッシュ ライブラリの分散バージョンの使用を含む) や他の多くのことを行うことができます。

作業配布用に、Terracotta 上に追加のライブラリがいくつか書かれています。特に tim-pipes (メッセージ用) と tim-masterworker (マスターワーカー スタイル配布用) は、Terracotta 上で優れた抽象化です。このライブラリはテラコッタ フォージにあります。

最近追加されたこのページには、他の潜在的なデータ テクノロジと比較した追加情報が追加される可能性があります。

JPPF のもいいです。

あなたは少し低いレベルに行きたい場合は、 JGroupsののがある、とあなたを提供していますクラスタリングJavaプロセスの非常に基本ます。

もチェックプロアクティブ

あなたがリストに追加できるもう一つは、 Appistry CloudIQ です。これは、分散コンピューティング環境です。 自由が5機までをダウンロードするように、それは可能です。これは、負荷分散、ならびに自動で他の機能の中で、ハードウェア障害の場合に作業のフェイルオーバーが含まれる。

グリッド コンピューティングの場合は、次のことも検討できます。 アイスグリッド または DataSynapse グリッドサーバー. 。これらは両方とも、タスクを分散するための非常に効果的なメカニズムを提供し、フェイルオーバーと冗長性を提供します。

私はあなたがあなたのアプリケーションを「クラスタ有効」に使用できるライブラリーについて尋ね、あなたの質問は、さまざまな方法で解釈されてきたと思います。

上記命名LIBSのいくつかは、分散キャッシュのような特定のクラスタ機能を提供するのに役立つことができるが、作業負荷管理を可能にする、より従来の方法は、J2EEコンテナの使用によるものである。

は、これはあなたがHA機能とワークロード管理を利用することを可能にするクラスタ化されたコンテナのインスタンスを設定することで、クラスタリングは、アプリケーションレベルでほぼ透明です。あなたは、あなたが各マシン間でのキャッシュの状態を複製する必要があるキャッシュのいくつかの並べ替えを実装する場合には、例えば、状態の管理方法に注意する必要があり、クラスタ化されようとしているアプリケーションを作成する場合ので、私はほとんどと言っています。

良い出発場所は、GlassFishのダウンロードおよびクラスタ化されたGlassFishのインスタンスをしようとして設定することになります。

希望に役立ちます。

カール

またチェックフラ

非常に遅く答え - しかし、それはあなたのアプリケーションが設定されている途中で、部分的に依存します。代わりに上記のいずれかの方法を使用してリモートでの実行可能ファイルを実行したい場合があります。

のリンクの不足のために謝罪 - 私の担当者までは、最大私は1つ以上のものを投稿することはできません。斜体の商品はGoogleに簡単にする必要があります。

あなたは、パラメトリック検索で実行可能ファイルを実行したい場合は、

- あなたは各インスタンスのオプションの範囲と同じ実行ファイルをスピンアップしたいと言う - そして、従来のバッチアプローチがうまく機能。これは、広く使用され、まだです非常に伝統的なハイパフォーマンス・コンピューティング・アプローチである - 企業規模でこれを扱うのに適しインフラはのプラットフォームLSF の、のDataSynapse GridServer の、のPBS のか、それがのWindows HPC Serverのの成熟など。また、コンドルののグローバスのようなオープンソース製品を見てみたいとをすることがあります。あなたのアプリがあるだけでどのように大きなに応じて、あなたはまた、LHCのような非常に大規模な科学的なプロジェクトのために使用されているのgLite の、で見えるかもしれません。

アプリのコードは、あなたのコンピューティングインフラストラクチャを備えたプロセスから分離されたが、他の人が速くスループットを示したが、メモリリークと長い稼働時間システムのための他の問題になりやすいかもしれないが、パフォーマンスヒットを取ることがあるからトラッドHPCのアプローチの利点。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top