需要帮助、某种架构建议...两个独立系统之间同步的最佳方式是什么?
一个是标准的 java 环境,另一个是一些没有 j2ee 集成且没有调度选项的遗留系统。旧系统公开了 Web 服务,所有处理都是通过客户端(java 应用程序)的调用启动的。处理将通过大约 100 个 Web 服务调用开始,并且需要很长时间才能完成,因此我不能在线程中等待那么长时间。
我正在考虑使用一种方法,让客户端开始处理并公开另一个 Web 服务以等待遗留系统处理。遗留系统将通过将所需数据放入数据库(记录 ID 或类似内容)来提供信息。这将是另外 100 个调用,作为对 init 调用的某种应答。这是合法的软件架构解决方案吗?
两个系统都正在读取/写入同一数据库。因此是否需要 2 个网络服务?旧系统没有计划启动的选项,因此我需要以某种方式启动它。
最佳答案
不太清楚您拥有什么以及需要什么。那么,让我稍微推测一下。
1) 旧系统收到 100 个请求,然后将它们作为一批一起处理。新系统需要所有这 100 个答案才能继续创建新请求。基于这个假设,遗留系统不会对每个单独的请求做出回应。因此,既然没有提供答案,那么新系统应该继续数百个地发出新的请求。但是,如果在旧系统中第 1 步未完成时新系统不应发出 101 请求,则需要同步。因此,新的不应该等待,而是不启动 101,直到它知道第 1 步完成为止。这应该是同步点 - 不等待 101,而是检查第一个是否完成。它可以在旧系统或新系统中完成,但这就是同步点。
关于java - 两个隔离系统之间的同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30312340/