繁体   English   中英

如何与数据库双向同步列表?

[英]How to two-way sync lists with a database?

我正在构建一个系统,该系统需要保持两个外部源彼此同步并保留这些同步的历史记录。 这是我为解释我的问题而制作的快速图表:

说明图

如果源 1 发生更改(添加、删除、两者),当我的系统运行定期同步时,我希望源 2 与源 1 相同。对源 2 的任何更改也是如此。请记住源 1 和2 可以在同步之间独立更改。

到目前为止,我提出的解决方案是拥有一个中央数据库,在第一次同步时保存源 1 和源 2 的内容减去任何重复项,然后用数据库的内容替换源 1 和源 2 的内容。

然后在随后的同步中,我会将源 1 和 2 与当前数据库进行比较,并将新的 state 保存在新数据库中。 这样,我将在每次同步后保留数据库的 state 的历史记录。

所以我在这一点上的两个主要问题是:

  1. 我的解决方案会起作用吗?它是实现我想要的“好”方式吗?
  2. 我将如何设计这个系统(模式)并在数据库中保持同步的跟踪记录?
  3. 目前有两个外部源要同步,但是我计划能够添加也需要同步的外部源(可能是 3 个或 4 个)。 我当前的解决方案是可扩展的还是我遗漏了什么?

如果代码/伪代码更容易解释,我主要精通Java和JS。 任何帮助都非常感谢,谢谢。

我认为您需要一个分布式缓存/在 memory 数据存储中,例如 Redis/Hazelcast,这将确保您的两个来源都知道正在进行的更改。 您可以在此缓存中添加一个侦听器并将其保存在数据库中,这将使您的数据保持一致。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM