JBoss7.2部署Infinispan7.2.5出现ISPN000476超时问题咨询
Infinispan超时配置问题排查
你的配置存在4个明显会触发通信超时的问题:
- 与JBoss内置服务冲突:JBoss 7.2本身已内置集成好的
infinispan子系统,你手动实例化DefaultCacheManager会和容器内置的传输层抢占端口、冲突JGroups节点发现规则,是该场景下最常见的通信异常诱因,正常用法应该直接注入容器托管的缓存容器,而非手动初始化。 - 全局传输配置缺失:你的
GlobalConfiguration仅开启了默认传输,没有指定集群名称、JGroups配置文件、节点发现策略,默认配置大概率无法正确识别集群节点,报错中提到的devserver-44351节点要么未实际加入当前集群,要么跨节点网络端口(JGroups默认使用7800、45700等端口)未开放,请求发出去后收不到响应,仅调整副本超时时间没有作用。 - 超时配置覆盖不完整:你仅配置了缓存的
replTimeout,但未同步调整全局RPC超时、Infinispan事务超时,以及JBoss层的EJB事务默认超时,若上层EJB事务超时时间短于35000毫秒,会先于缓存超时抛出回滚异常,表现出来就是你收到的报错。 - 同步复制模式缺少状态传输配置:
REPL_SYNC同步复制模式要求集群节点之间完成全量状态同步后才能正常处理请求,你没有配置stateTransfer相关参数,若集群节点多、缓存数据量大,初始状态同步未完成时发起读写请求,必然会触发超时。
临时验证调整方案:
- 先关闭JBoss内置的Infinispan子系统,避免传输层冲突
- 全局传输配置补充明确的集群名,以及和你的环境匹配的JGroups配置规则
- 同步调整JBoss EJB事务超时到大于35000毫秒的值
- 缓存配置补充状态传输超时参数:
new ConfigurationBuilder().clustering().stateTransfer().timeout(60000)
内容的提问来源于stack exchange,提问作者IbrahimMitko
相关产品推荐
相关产品推荐

