首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ehcache是否尊重serialVersionUID?

ehcache是否尊重serialVersionUID?
EN

Stack Overflow用户
提问于 2011-08-18 04:35:17
回答 1查看 691关注 0票数 4

我们在集群中运行ehcache1.5,一个接一个地使用RMI复制和更新服务器(想想顶部的负载均衡器/代理和零宕机更新)。

我们通常不关心serialVersionUID。问题是,如果在复制的缓存中有一个实体的两个版本,可能会发生非常糟糕的事情(直到宕机)。也就是说,如果运行旧代码的服务器之一将元素复制到其类已更改的新服务器。

我们通常通过在不同的端口上为更新的服务器启动新集群来解决这个问题,但这是相当丑陋和脆弱的。

因此,问题是:集群的、复制的ehcache是否正确地尊重serialVersionUID?也就是说,如果本地类的版本不同,它不会尝试复制实体吗?

感谢你的直观猜测,但我正在寻找尽可能确凿的数据,最好是官方文档。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-20 05:50:55

Ehcache不支持您所建议的serialVersionUID。我亲身体验过您在独立运行Ehcache和通过Terracotta分发Ehcache时所描述的场景,如果版本UID不匹配,客户端将抛出异常。

理想情况下(我假设这就是您正在寻找的)与serialVersionUID不匹配的对象将直接错过缓存,但不幸的是,这不受支持。

如果您正在寻找一个稍微更好的解决方案来解决这个问题,请尝试在更改缓存实体时更改缓存区域名称,也许可以将其与serialVersionUID链接起来。您需要更新您的ehcache配置文件以添加新的缓存区域,但是这将强制资源仅从包含其支持的版本的缓存中请求实体。在分布式环境中,这是一个很大的帮助,在这种环境中,您不能同时使用新版本更新所有资源,并且不希望缓存过期。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7099133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档