Java:在互联网可以中断时在线更新数据的最佳实践

Sli*_*nTN 5 java data-synchronization


我有2个申请:

  • 桌面(java)
  • 网络(symfony)

我在桌面应用程序中有一些数据必须与Web应用程序中的数据一致.
所以基本上我POST从桌面应用程序向Web应用程序发送请求以更新在线数据.

但问题是,当我发送请求时,互联网并不总是可用,同时我无法阻止用户更新桌面数据
到目前为止,这是我在考虑确保同步数据的时候互联网是可用的.

在此输入图像描述 我是否正确的方向?
如果没有,我希望你们让我走上正确的道路,以专业的方式实现我的目标.
任何关于此类主题的链接将不胜感激.

zap*_*pee 0

这是一个典型的场景,当您想要在事务中向非事务性外部系统发送消息,并且需要保证数据尽快传输到外部系统而不丢失时。

我想到了两个解决方案,也许第二个更适合您的架构。

使用案例 1)

您可以使用带有死信模式的消息队列+重新传递限制设置。在这种情况下,您需要有一个应用程序服务器。

您可以在此处阅读有关死信模式的详细信息。

文档解释了重新传递限制在 Weblogic 服务器上的工作原理。

用例 2)

您可以在 destop 应用程序的数据库中创建接口表。然后将原始数据插入数据库,并将新记录插入接口表(全部在同一事务中)。您想要 POST 的数据也需要插入到接口表中。接口表中新记录的状态标志可以是“ ARRIVED ”。然后在桌面应用程序中创建一个独立的计时器,定期搜索接口表中状态为“已到达”的记录。这个计时器控制的进程将尝试将数据 POST 到 Web 服务。如果 HTTP 响应为 200,则将记录的状态更新为“已发送”。

靴子可以像魅力一样发挥作用。