2012-04-26 6 views
9

データ層でJPAを使用するjboss7に標準のJava EEアプリケーションをまとめています。私はこのアプリケーションを負荷に比例するようにしたいと思っています。 Web層をどのようにスケールアップするかは明らかですが、マシンを増やしてロードバランサの後ろにスローしてください。データ層のスケールアップはあまりありません。スケーリングとクラスタリングJPA

おそらくデータベース(MySQL)をクラスタリングできます。 Stilは、JPAレイヤーをクラスタ化しないままにします。理想的には、JPAはMySQLでバックアップされた(クラスタ化された)メモリキャッシュを使用してスケールアップします。

私が調べると、JPAスケーリングに関するすべての情報は3-4歳のようです。人々はehcache、memcachedとinfinispanについて話します。これがまだ最新であるかどうかはわかりません。

Java EEのクラスタリングとスケーリング、特にデータ層の最先端技術を教えてもらえますか?

+0

私はPiotrとJamesから素晴らしい回答を得ました。残念なことに、SOFは正しい答えとしてマークすることができます。両方に感謝します。次に、キャッシングの中で何が最良であるかを知る必要があります。なぜmemcached以外のものを使うのでしょうか。 – Raj

答えて

6

JPA/Hibernate(基本的にあなたの質問で最も人気のあるオプションと名付けました)をスケールする方法はいろいろあります。私が知る限り、この分野で4〜5年以来、特別な出来事はありません。あなたが言及していないもう1つのオプションは、JBoss Cacheです。したがって、JPA/Hibernate用の2次レベル・キャッシュは、この領域では依然として規則になっています。

なぜここで進歩はありませんか?私の野生の推測では、スケーラブルなアプリケーションを必要とするすべての人の第一は、高性能が必要な分野でJPAとHibernateを無視する傾向があるということです。通常、Spring FrameworkのJDBCTemplateヘルパーとトランザクション管理を使用してSQLを実装しています。スケーラビリティは、この分野におけるデータベース機能の問題です。

もう1つの傾向は、No-SQLデータベースを使用することです。 MongoDB、CouchoDB、Cassandra、Redisなどのソリューションがたくさんあります。これらは通常、Google BigTableのようなキーバリューストレージです(これは単純化されていますが、そのアプローチの背後にあるアイデアです)。制限を受け入れると、関係は簡単に管理できなくなります。多くのソリューションがあります

+0

こんにちはPiotr、あなたのお返事ありがとうございます。私はJDBCテンプレートヘルパーについてもっと学ぶことに興味があります。良い指針はありますか? – Raj

+0

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/jdbc.htmlは読みやすいです。 「Spring in Action」という本もあります。 –

+0

リンクのおかげで、Piotr。 – Raj

6

、ソリューションの2つの主なカテゴリは次のとおりです。

  • データベースの負荷を軽減するためにクラスタ化されたキャッシュを使用してデータベース
  • をスケーリング

のEclipseLinkは、シャーディングデータのためのデータ・パーティショニングをサポートしています

以下を参照してください。 http://java-persistence-performance.blogspot.com/2011/05/data-partitioning-scaling-database.html

ます。また、MySQLのクラスタを使用することができます

参照: http://www.mysql.com/products/cluster/

のOracle TopLinkのグリッドは、分散キャッシュなどのOracleコヒーレンスとの統合のためのEclipseLink JPAのサポートを提供し、

参照: http://www.oracle.com/technetwork/middleware/ias/tl-grid-097210.html

EclipseLinkのキャッシュは、キャッシュ調整によるクラスタリングをサポートします。

参照: http://wiki.eclipse.org/EclipseLink/Examples/JPA/CacheCoordination

+0

こんにちはJames、あなたのお返事ありがとうございます。規模の拡大と単一障害点の回避の両方を行いたいと考えています。私の調査では、memcachedは「ベスト・オブ・ブリード」と思われます。これは幅広いサポートを受けており、他のキャッシュが何をするのかを実行できるようです。どう思いますか? – Raj