在服务器之间同步一致性缓存的问题

时间:2017-09-19 17:02:37

标签: c# .net caching oracle-coherence

我在服务器X上托管了一个.net Web应用程序(A),它订阅了由服务器Y上托管的另一个.net应用程序(B)公开的一致性缓存。 理想情况下,在任何时间点,A中的缓存和B中的缓存都应该同步。 在某种情况下,由于某种原因A出现故障(网络错误,服务器崩溃等),A将重新启动。 在A关闭的时间跨度内,B缓存可能会有一些新的更新。 所以我想确保A的缓存在重启时与B的缓存同步。 请做到这一点的最佳策略是什么?

是否应该连续地将其缓存复制到数据库(键和值)? 当A关闭并再次备份时,它可以检查其数据库中的密钥数量。 如果此计数与B缓存中的计数不匹配,那么它可以使用B的缓存重新填充它吗? 这种方法有意义吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试Federated Caching让您的缓存在所有群集中同步。

请记住,如果由于任何原因重新启动了复制的缓存群集,那么当它返回时,您已手动(例如,使用JConsole)触发此群集的数据复制。否则,只有新缓存的数据才会同步。