如何在分布式环境中保持 Javers 缓存的一致性?

How to keep Javers cache consistent in distributed environment?

在分布式环境中使用 Javers 和 Spring 引导应用程序(使用 MongoDB)时,我得到不正确的审核快照。

如何重新创建(假设我们有 2 个服务器)-

  1. 通过在服务器 1 上发送请求来更新现有文档
  2. 通过在服务器 2 上发送请求来更新同一个文档
  3. 通过在服务器 1 上发送请求再次更新同一个文档

最后生成的审核数据将包含请求 1 中的 previousValue 和请求 3 中的 currentValue。

目前,我已通过设置以下 属性 javers.snapshotsCacheSize=0[=31 禁用 javers 缓存来解决此问题=].

有什么方法可以使 javers 缓存在分布式环境中保持一致?

没有这种方法。 Javers 只使用本地缓存。我没有测试它,但我认为添加分布式缓存层不会显着加快速度。这会增加额外的开销。但如果您有兴趣贡献该功能 - 我们可以在这里讨论 https://github.com/javers/javers/discussions