You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Infinispan Spring Boot Starter与Hibernate二级缓存重用CacheManager?

问题

我正在使用infinispan-spring-boot3-starter-embedded结合Spring Session实现分布式会话,功能运行正常。但应用同时使用Hibernate的SessionFactory(非JPA),为实现分布式二级缓存,配置了如下属性:

<property name="hibernate.cache.region.factory_class">infinispan</property>

该配置会将区域工厂设为org.infinispan.hibernate.cache.v60.InfinispanRegionFactory实现,但它会创建新的CacheManager而非重用Spring Boot Starter已经创建好的实例,导致默认传输机制冲突,日志频繁出现如下报错:

2023-10-30 13:58:09.311 ERROR 21424 [4,Rainbow-12965] o.j.l.Log4J2LogImpl : JGRP000191: failed receiving packet from /172.26.127.126:51131: java.io.EOFException

2023-10-30 13:58:09.467 ERROR 21424 [4,Rainbow-12965] o.j.l.Log4J2LogImpl : JGRP000191: failed receiving packet from /172.26.127.126:51131: java.lang.IllegalArgumentException: invalid magic number 258; needs to be in range [0..100]

Infinispan建议仅使用一个CacheManager,请问如何避免冲突并重用现有CacheManager?

解决方案

要让Hibernate重用Spring Boot Starter创建的CacheManager,可以通过以下步骤实现:

  • 替换区域工厂实现类
    放弃默认的InfinispanRegionFactory,改用Spring集成的SpringInfinispanRegionFactory(包路径org.infinispan.hibernate.cache.v60.spring.SpringInfinispanRegionFactory)。这个工厂类会自动从Spring容器中获取已有的CacheManager实例,而非新建。修改Hibernate配置:

    <property name="hibernate.cache.region.factory_class">org.infinispan.hibernate.cache.v60.spring.SpringInfinispanRegionFactory</property>
    
  • 补充依赖包
    确认项目中引入了infinispan-hibernate-cache-spring依赖,版本需与你的Infinispan、Spring Boot版本匹配。Maven项目添加依赖:

    <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-hibernate-cache-spring</artifactId>
        <version>${infinispan.version}</version>
    </dependency>
    
  • 指定共享CacheManager的Bean名称
    添加Hibernate配置属性,明确指向Spring容器中的CacheManager实例:

    <property name="hibernate.cache.infinispan.cache_manager">cacheManager</property>
    

    Spring Boot自动配置的CacheManager默认Bean名称就是cacheManager,直接使用即可。

  • 验证效果
    启动应用后检查日志,确认仅初始化了一个CacheManager实例,同时JGroups相关报错应消失。

内容的提问来源于stack exchange,提问作者waxwing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 16:35:09