在两个不同的应用程序中保持数据同步的最佳方法



我有两个闭源应用程序,它们必须在某些时候共享相同的数据。都使用REST api

一个实际的例子是helpdesk票证,它们可以在两个应用程序上创建,当用户在另一个应用程序上添加新票证/关闭票证时,我需要更新一个应用程序上的数据,反之亦然。

由于是闭源的,我不能真正修改代码。

我在想我可以创建第三个应用程序,每隔5分钟左右,列出两个应用程序的票在先前调用上的差异,如果数据与先前调用不同,它也更新另一个应用程序。

有更好的方法吗?

对于闭源应用程序,几乎不可能从它们那里得到什么,除非它们有一些基于插件的设置,你可以钩入。

在成本方面,最有效的方法是让第一个应用程序在队列上发布消息,或者在事件被触发时调用您设置的web-hook。但是正如我提到的,应用程序需要支持这个。

所以,是的,你的解决方案几乎是你现在能做的一切,但要记住你可能会遇到的挑战随着时间的推移:

  • 如果两个api的结果都太大而无法直接比较怎么办?也许你需要考虑分页结果。
  • 如果你的应用崩溃,你失去了以前的状态怎么办?你需要以某种方式在外部源中备份它
  • 你应该多久轮询一次API,以确保你得到你需要的更新,同时保持现有流量的良好性能?

最新更新