Caching 什么';Hibernate二级缓存的Infinispan缓存工厂之间的区别是什么?
我试图找出这两个工厂之间的区别,在Caching 什么';Hibernate二级缓存的Infinispan缓存工厂之间的区别是什么?,caching,cluster-computing,wildfly-10,infinispan,Caching,Cluster Computing,Wildfly 10,Infinispan,我试图找出这两个工厂之间的区别,在hibernate.cache.region.factory\u类属性中使用 例如: <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.infinispan.JndiInfinispanRegionFactory" /> <property name="hibernate.cache.infinispan.cachemanager"
hibernate.cache.region.factory\u类
属性中使用
例如:
<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.infinispan.JndiInfinispanRegionFactory" />
<property name="hibernate.cache.infinispan.cachemanager" value="java:jboss/infinispan/container/hibernate" />
有4种可能的选择
我了解的两个选项是:
org.hibernate.cache.infinispan.InfinispanRegionFactory
:用于独立应用程序(我认为不在集群中)org.hibernate.cache.infinispan.JndiInfinispanRegionFactory
:它绑定到属性hibernate.cache.infinispan.cachemanager
中的JNDIorg.jboss.as.jpa.hibernate5.infinispan.SharedFinishanRegionFactory
:org.jboss.as.jpa.hibernate5.infinispan.InfinispanRegionFactory
:我们在Wildfly 10.1.0上使用域模式配置了一个集群。我们希望在节点之间共享实体缓存,但我们对如何实现这一点有一些疑问。如果使用Wildfly,则不必担心设置区域工厂类,因为Wildfly默认使用Infinispan作为二级缓存提供程序。一切都解释清楚了
你所要做的就是启用hibernate.cache。使用二级缓存,你就可以开始了。请参阅文档中的示例。如果使用Wildfly,则不必担心设置region factory类,因为Wildfly默认使用Infinispan作为二级缓存提供程序。一切都解释清楚了
你所要做的就是启用hibernate.cache。使用二级缓存,你就可以开始了。参见文档中的示例。配置环境包括Infinispan、Hibernate和JGroup。 在Wildfly10上使用域模式,您需要在应用程序EAR上进行以下配置:
<property name="hibernate.cache.use_second_level_cache" value="true"/>
配置环境包括Infinispan、Hibernate和JGroups。 在Wildfly10上使用域模式,您需要在应用程序EAR上进行以下配置:
<property name="hibernate.cache.use_second_level_cache" value="true"/>
我同意高尔德的观点,+1 关于[org.jboss.as.jpa.hibernate5.infinispan.SharedInfinispanRegionFactory][1]+[org.jboss.as.jpa.hibernate5.infinispan.InfinispanRegionFactory][2]的用途,这些类扩展了Hibernate ORM[Hibernate infinispan][3]实现类,目的是启动用于JPA二级缓存的内部WildFly Infinispan缓存服务。它们还处理配置。随着时间的推移,下面的链接可能会过时,因为我认为我们[3]的代码可能会转移到Infinispan项目(最终) 更多的相关代码位于[HibernateSecondLevelCache.java][4],它支持Galder所说的。您可以看到WildFly JPA容器自动为您设置区域工厂类(如果通过[HibernatePersistenceProviderAdaptor.java][5]启用了缓存) 我不确定这些代码链接是否对您有帮助,我想它们可能有帮助。:) 作为stackoverflow新手,我不允许发布超过2个链接,这就是为什么[3]-[5]是无效链接的原因 斯科特 [1] [2] [3] github.com/hibernate/hibernate-orm/tree/master/hibernate-infinispan [4] github.com/wildfly/wildfly/blob/master/jpa/hibernate5/src/main/java/org/jboss/as/jpa/hibernate5/HibernateSecondLevelCache.java
[5] github.com/wildfly/wildfly/blob/master/jpa/hibernate5/src/main/java/org/jboss/as/jpa/hibernate5/HibernatePersistenceProviderAdaptor.java 35; L91我同意高尔德的观点,+1 关于[org.jboss.as.jpa.hibernate5.infinispan.SharedInfinispanRegionFactory][1]+[org.jboss.as.jpa.hibernate5.infinispan.InfinispanRegionFactory][2]的用途,这些类扩展了Hibernate ORM[Hibernate infinispan][3]实现类,目的是启动用于JPA二级缓存的内部WildFly Infinispan缓存服务。它们还处理配置。随着时间的推移,下面的链接可能会过时,因为我认为我们[3]的代码可能会转移到Infinispan项目(最终) 更多的相关代码位于[HibernateSecondLevelCache.java][4],它支持Galder所说的。您可以看到WildFly JPA容器自动为您设置区域工厂类(如果通过[HibernatePersistenceProviderAdaptor.java][5]启用了缓存) 我不确定这些代码链接是否对您有帮助,我想它们可能有帮助。:) 作为stackoverflow新手,我不允许发布超过2个链接,这就是为什么[3]-[5]是无效链接的原因 斯科特 [1] [2] [3] github.com/hibernate/hibernate-orm/tree/master/hibernate-infinispan [4] github.com/wildfly/wildfly/blob/master/jpa/hibernate5/src/main/java/org/jboss/as/jpa/hibernate5/HibernateSecondLevelCache.java
[5] github.com/wildfly/wildfly/blob/master/jpa/hibernate5/src/main/java/org/jboss/as/jpa/hibernate5/HibernatePersistenceProviderAdaptor.java#L91谢谢!但是此默认配置使缓存分布在集群的节点之间?默认配置standalone.xml是为单个节点设计的,但是Wildfly附带了多个配置,包括cluster.xml和其他配置,它们是为集群env.Btw设计的,而不考虑Wildfly配置(独立或群集),您的persistence.xml保持不变,除了我上面建议的内容之外,您不需要在此处进行任何更改。谢谢!但此默认配置使缓存分布在集群的节点之间?默认配置standalone.xml是为单个节点设计的,但Wildfly附带了多个配置,包括clusted.xml和其他为集群env.Btw设计的文件,不管是Wildfly配置(独立还是集群),persistence.xml都保持不变,不需要在那里进行任何修改
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (MSC service thread 1-4) ISPN000078: Starting JGroups channel hibernate
....
....
Received new cluster view for channel hibernate: [HC1:server-1, HC2-server-2, HC2-server-3, HC2-server-4]