JBoss 系列五十六:JBoss 7/WildFly 集群之 Java Persistence API (JPA) - I(基本理论)

本文介绍了JBoss 7/WildFly集群中Java Persistence API (JPA)的基本理论,强调了JPA在集群环境中的无状态特性。内容包括一级缓存的短暂本地存储角色,以及二级缓存如何通过Infinispan提升性能并保持数据连续性。二级缓存的配置选项,如ENABLE_SELECTIVE、DISABLE_SELECTIVE等,以及实体类的@Cacheable注解,确保了集群中数据的正确同步和一致性。
摘要由CSDN通过智能技术生成

Java持久性API(JPA)是在Java项目中使用持久性的标准。Java EE 6的应用程序使用Java Persistence2.0规范。的Hibernate EntityManager的实现了JPA规范定义的程序编程接口及生命周期规则,它为JBoss 7提供一个完整的Java持久性解决方案。JBoss 7是100%兼容JPA2.0规范的,Hibernate也提供了除JPA规范外额外的功能。


当在JBoss集群中使用JPA,数据通常被存储在中央数据库或数据库集群中,与JBoss集群是独立的,分离的。因此,请求在JBoss集群中的任何一个节点上的失败或JBoss实例的毁坏都不影响数据库中的数据。这也是JPA规范所考虑的范畴,为了这一目的,JPA本身被认为是无状态的,因为状态在JPA系统之外,是独立的。


JPA中的一级缓存(First-level caching)涉及到持久化上下文,在JBoss中指的是Hibernate的Session,这个缓存是本地的,并认为它是短暂的,适用于单个的请求。它不会改变JPA技术的无状态特性,并不会对JPA应用的水平扩展和集群造成风险。


JPA的二级缓存(SECOND-LEVEL CACHING)指的是对传统数据库的缓存。它是JPA实体的一个本地数据存储,通过减少所需的往返数据库的次数来提高性能。使用了二级缓存,可以理解数据库中的数据在同一个集群中可以仅通过JPA进行修改。任何一个节点上数据的改变,对应的在其他节点上是数据的失效,这样保证的数据的连续性。尽管这样,有时候二级缓存还是会为JPA带来状态,这些问题需要注意解决。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值