我正在使用EhCache 2.10.2。两个服务器(S1和S2)之间的同步复制(replicateAsynchronously = false)。
我有下一个情况:
当服务器将对象放入缓存时,线程阻塞放置操作仅将序列化对象发送到另一个服务器,而不要等待另一个服务器反序列化并将元素放入缓存。 所以在第6点可以是状态“A”或“B”,如果我们幸运的话。
是否可以将EhCache配置为阻止操作,直到在所有节点上复制更改?
可能我需要用其他缓存实现替换EhCache,还是改变一切?
答案 0 :(得分:0)
您遇到的是缓存复制的弱点。您的方案似乎需要强烈的一致性。
请注意,除了缺乏强一致性之外,缓存复制甚至不能保证按密钥排序事件,也不会执行任何类型的冲突解决。这真的是最后的更新胜利。
Ehcache唯一能为您提供适当保证的功能是Terracotta clustering。为了部署此解决方案,您至少需要一个额外的服务器/ JVM作为Terracotta集群。