gpt4 book ai didi

java - 集群 Terracotta 缓存未跨模块更新

转载 作者:行者123 更新时间:2023-12-01 05:00:45 25 4
gpt4 key购买 nike

这个问题有很多组成部分,我会尽力不遗漏任何一个:

  • EhCache 与 Terracotta 一起使用进行集群
  • EhCache 同时用于 Spring 缓存和 Hibernate 二级缓存
  • 为了只有一个缓存管理器,该缓存管理器被声明为“共享”
  • 我们有很多 Web 模块,它们部署为不同的 Web 应用
  • 在内部环境中,模块部署在同一服务器上并且不使用 Teracotta,在生产和临时环境中,它们部署在单独的服务器上
  • terracotta 集群使用默认的“最终”一致性模式
  • ehcache 2.5.2、hibernate 3.6、terracotta 3.0.6

考虑到这些先决条件,会发生以下情况:

  1. 一个 Web 模块(Web 应用程序,部署在一台服务器上)对 hibernate 实体进行更改。这应该会更新集群范围内的缓存条目。
  2. 当从另一个 Web 模块(另一个服务器)请求该对象时,如果该标识符加载了一个实体,即使一分钟后,也会返回一个过时的对象(即,没有第一个 Web 应用程序所做的修改)

问题是:- 我是否正确地假设,在进行“保存”操作后,二级缓存“最终”(根据 Terracotta 文档,在几毫秒内)获取集群范围内更新的信息?- 没有发生这种情况的可能原因是什么?

最佳答案

看来<defaultCache>未使用 <terracotta /> 声明为集群。其他人都是这样,所以我一开始并没有注意到这个疏忽。

关于java - 集群 Terracotta 缓存未跨模块更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13419490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com