2014-01-22 52 views
2

我们正在开发两个web应用程序,webapp#1是一个商店应用程序,基于spring的基于mysql的应用程序,另一个(webapp#2)是webapp#1的后台应用程序。两个具有共享数据的web应用程序

我们希望backoffice操作(webapp#2)不会影响webapp#1的数据库,这需要具有非常高的可用性。

我们面临的问题是如何共享(如果有的话)与这两个webapps相关的实体。

例如,为了让后台在商店产品上生成按需报告,它必须在实体“产品”和“存储”上进行汇总。

现在,“Product”和“Store”显然是位于webapp#1架构中的实体,但为了让webapp#2(backoffice)生成报告,它必须具有相同的实体。

那么,我们究竟能做到这一点呢?我们应该在两个webapps模式上复制“Product”和“Store”吗? (并且遭受冗余数据),冗余甚至是现实生活中的实践吗?这似乎太糟糕了。

请记住,如果模式仅在Web应用程序#1中,那么后台应用程序可能会在生成报告时产生干扰。

报告场景不是真正的问题,它只是一个例子。

最佳,

+0

它是只读访问是干扰还是读写? – Fildor

+0

读访问也是干扰,因为一些查询是巨型复杂 – Urbanleg

+1

我认为这是不是一个好主意,在高可用性数据库上启动报表生成查询。您需要有某种临时数据库才能启动报告生成查询。 – Vishal

回答

0

选项1:例如,你可以使用Web服务。它从一个真正的聚合表读取数据。一些工作被填充。

optpion 2:或者让报告服务器拥有webapp#2报告应用程序可以使用的自己的数据库。在这个数据库中,可以在预定义的小时,在web应用程序#1未被加载的情况下,在db级别进行复制。

相关问题