首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展和集群JPA

扩展和集群JPA
EN

Stack Overflow用户
提问于 2012-04-26 14:56:09
回答 2查看 7.6K关注 0票数 11

我在jboss7上组装了一个常规的Java应用程序,它将在数据层使用JPA。我想让这个应用程序能够随着负载的增加而扩展。虽然很清楚如何扩展web层:创建更多的机器并将它们放在负载均衡器后面,但扩展数据层就不那么简单了。

我可能可以集群我的数据库(MySQL)。Stil,这会使JPA层处于非集群状态。理想情况下,JPA将通过使用MySQL支持的内存中(集群)缓存进行扩展。

当我环顾四周时,所有关于JPA scaling的信息似乎都是3-4年前的事情。人们谈论ehcache,memcached和infinispan。我不确定这是否仍然是最新的。

有人能告诉我Java EE集群和伸缩方面的最新技术吗,尤其是在数据层。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-26 21:29:02

各种缓存策略仍然是扩展JPA/Hibernate的方法(您在问题中基本上列出了最流行的选项)。据我所知,在这个领域4-5年来没有发生什么不寻常的事情。您还没有提到的另一个选项是JBoss缓存。因此,JPA/Hibernate的二级缓存仍然在这一领域占据统治地位。

为什么这里没有进展?我的猜测是,首先,需要可伸缩应用程序的人倾向于在需要高性能的领域忽略JPA和Hibernate。通常,人们会使用SQL语言、Spring框架、JDBCTemplate助手和事务管理。那么,可伸缩性就是这一领域的数据库能力问题。

另一种趋势是使用No-SQL数据库。有很多解决方案: MongoDB,CouchoDB,Cassandra,Redis等等。这些通常是类似Google BigTable的键值存储(这是过于简化,但这或多或少是这种方法背后的想法),如果你接受它们的局限性(关系不再容易管理,等等),它们的规模就像地狱一样大。

票数 8
EN

Stack Overflow用户

发布于 2012-04-26 21:36:33

有很多解决方案,主要有两类解决方案:

  • scaling database
    • using a clustered to reduce database load

    (使用群集缓存扩展数据库以降低数据库负载)

EclipseLink支持数据分区以跨一组数据库实例对数据进行分片。

请参阅:http://java-persistence-performance.blogspot.com/2011/05/data-partitioning-scaling-database.html

您也可以使用MySQL集群,

请参阅:http://www.mysql.com/products/cluster/

Oracle网格为与TopLink Coherence作为分布式缓存集成提供了EclipseLink JPA支持,

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

EclipseLink的缓存通过缓存协调支持集群,

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10328581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档