使用相同的数据库和表格的两个Grails应用程序是否有任何特殊配置?

时间:2010-08-03 09:38:10

标签: grails

我在两个不同的应用服务器中部署了两个grails(1.2.1)应用程序。一个应用程序包含主站点(视图,控制器,域等),另一个应用程序有一个Quartz插件,执行核心和后端处理。这两个应用程序都在共享Domain类和相同的DataSource配置。这意味着这两个应用程序正在访问相同的数据库和表。

我的问题是:查询数据库有什么惩罚吗?

如果Quartz作业应用程序正在运行,我只是注意到主站点应用程序有些缓慢。但是没有明确的证据或统计数据。每个应用程序上的hibernate组件能够在某些事件中正确处理并发和事务吗?或者我是否还需要在每个应用程序的grails-app / conf中配置一些东西?现在,我没有添加额外的配置。

感谢。

2 个答案:

答案 0 :(得分:3)

我能想到的主要问题是二级缓存的问题。如果两个应用程序都尝试并缓存数据,那么当缓存与数据库不同步时,由于其他应用程序更改了数据库,它可能会导致StaleObjectExceptions等。默认情况下禁用二级缓存,因此您可能没有问题。

它还取决于您是使用默认提供的乐观锁定还是使用域类上的lock()方法显式锁定。乐观锁定不应导致速度减慢(但如果其他应用程序更新了行,则可能导致保存时出现异常)。

答案 1 :(得分:0)

您是否考虑过一个架构,其中一个应用程序掌握您的域类,另一个应用程序通过消息或Web服务调用与之集成?这样,您可以避免与应用程序中的重复相关的一些问题。