【问题标题】:How to handle data synchronisation between 2 Spring apps? [closed]如何处理 2 个 Spring 应用程序之间的数据同步? [关闭]
【发布时间】:2019-05-26 05:32:55
【问题描述】:

我正在寻找处理以下场景的最佳方法,最好是已经为类似的事情进行了一些实现。

有两个系统(Springboot Webapps)应该通过 Rest-gateway 相互通信。传输应使用 Json over HTTP 处理。

第一个系统是项目部分,第二个系统是人员部分,它们都实现了自己的持久化 sql 数据库。两个系统都依赖于彼此的数据,不能期望两个系统始终在线。

实现两个系统数据始终保持最新状态的最佳方法是什么?您是否可以推荐任何插件来处理同步过程,该过程还实现了一个系统在发送时关闭或相反的情况?

提前致谢!

【问题讨论】:

    标签: java spring spring-mvc spring-boot spring-data-jpa


    【解决方案1】:

    如果您不能期望两个系统始终在线,并且您不希望其中一个系统停机时出现任何停机,我认为最好的方法是共享一个公共数据库。这有其自身的一些问题,您应该考虑是否值得,也许您最好拥有两个完全独立的服务,它们相互依赖并准备好在需要时复制其中一个。

    【讨论】:

    • 不幸的是,共享一个公共数据库不是一种选择。我正在寻找一种方法来正确处理同步过程。
    • 您确定需要在这些服务之间同步数据吗?通常你让每个服务管理自己域的数据。
    • 那么您对架构有何建议?我想不出一个不同的想法来实现两个系统的数据尽可能保持最新。
    • 每个服务都拥有自己的数据(项目服务拥有项目数据,人员服务拥有人员数据)。每次服务需要来自其他服务域的数据(例如,Persons 服务需要了解项目)时,它们都会使用 REST API 相互调用,就像您现在使用它一样。您应该实施重试策略,这样,当一个服务关闭时,另一个服务将重新尝试检索数据,直到它再次备份。
    • 请记住,在微服务架构中,您可以同时启动同一服务的多个副本,因此如果其中一个出现故障,您的整个系统都不会发生任何问题。
    猜你喜欢
    • 2012-07-05
    • 2016-02-04
    • 2015-03-22
    • 1970-01-01
    • 2016-06-12
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多