[英]How to two-way sync lists with a database?
我正在构建一个系统,该系统需要保持两个外部源彼此同步并保留这些同步的历史记录。 这是我为解释我的问题而制作的快速图表:
如果源 1 发生更改(添加、删除、两者),当我的系统运行定期同步时,我希望源 2 与源 1 相同。对源 2 的任何更改也是如此。请记住源 1 和2 可以在同步之间独立更改。
到目前为止,我提出的解决方案是拥有一个中央数据库,在第一次同步时保存源 1 和源 2 的内容减去任何重复项,然后用数据库的内容替换源 1 和源 2 的内容。
然后在随后的同步中,我会将源 1 和 2 与当前数据库进行比较,并将新的 state 保存在新数据库中。 这样,我将在每次同步后保留数据库的 state 的历史记录。
所以我在这一点上的两个主要问题是:
如果代码/伪代码更容易解释,我主要精通Java和JS。 任何帮助都非常感谢,谢谢。
我认为您需要一个分布式缓存/在 memory 数据存储中,例如 Redis/Hazelcast,这将确保您的两个来源都知道正在进行的更改。 您可以在此缓存中添加一个侦听器并将其保存在数据库中,这将使您的数据保持一致。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.