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
    中的JNDI
  • 我不知道这2点:

  • org.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]