我们正在开发两个Web应用程序,webapp#1是商店应用程序,基于Spring的应用程序使用mysql,另一个(webapp#2)是webapp#1的后台应用程序。
我们希望后台操作(webapp#2)不会影响webapp#1的数据库,这需要具有非常高的可用性。
我们面临的问题是如何共享(如果有的话)与两个webapps相关的实体。
例如,为了使后台生成商店产品的On Demand报告,它必须在实体“Product”和“Store”上进行聚合。
现在,“产品”和“商店”显然是webapp#1架构中的实体,但为了使webapp#2(后台)生成报告,它必须具有相同的实体。
那么,我们究竟能实现这一目标吗?我们应该在两个webapps架构上复制“Product”和“Store”吗? (并且受到冗余数据的影响)冗余甚至是现实生活中的一种做法?看起来太糟糕了。
请记住,如果模式仅在webapp#1中,那么后台应用程序可能会在生成报告时发生干扰。
报告方案不是真正的问题,只是一个例子。
最佳,
答案 0 :(得分:0)
选项1:例如,您可以使用Web服务。它从真实的聚合表中读取数据。这会被一些工作填满。
optpion 2:或者让报告服务器拥有自己的数据库,webapp#2报告应用程序可以使用该数据库。在此数据库中,当webapp#1未加载时,可以在预定义的小时完成数据库级别的复制。