2010-11-18 25 views
1

我是Grails + Hibernate的全新開發人員,所以如果這是衆所周知的事情,我很抱歉。在一臺機器上擴展Grails + Hibernate應用程序

我正在做一些Grails應用程序的工作,這個應用程序需要非常高的擴展性,幾乎可以肯定超越單個節點。它在PostgreSQL上使用Hibernate,我想知道是否多個Grails實例可以同時與同一個Hibernate/Postgres DB交談(並且我的意思是同一個DB,不是同一個DB服務器),或者每個Grails實例需要自己的DB(就像兩個基於CoreData的應用程序不能同時訪問同一個CoreData DB一樣)。

Hibernate中是否有內置任何東西來處理同時用作多個正在運行的應用程序的數據存儲?我意識到這聽起來有點像一廂情願的想法,但我只想確認它在繼續前肯定不行。

如果任何人有關於擴展Grails應用程序到單個實例之外的典型方法是什麼的建議,那將非常感激。

回答

1

沒有太多瞭解的聚類,我成功地使用Tomcat運行在Grails兩個服務器實例,訪問另一臺服務器上的一個MySQL數據庫。應用程序實例都指向DataSource.groovy配置中的相同URL。

到目前爲止,在這方面我還沒有遇到任何關於grails或Hibernate的問題。

+0

謝謝..我懷疑這是否起作用很大程度上取決於您對數據庫執行的寫入類型以及是否存在衝突,因此在此需要考慮一些特定於應用程序的內容。很高興知道這至少是可能的。 – glenc 2010-11-19 19:41:23

5

看到這個職位有關羣集的Grails:http://www.tomcatexpert.com/blog/2010/07/20/basic-tomcat-clustering-grails-applications這是基於先前的工作,我做到了,並寫在這裏:http://burtbeckwith.com/blog/?p=244

+0

嗨伯特 - 非常感謝鏈接。我仔細閱讀了整篇文章,而對我感興趣的部分是關於跨多個Tomcat服務器的會話複製,直到最後。我認爲這意味着Hibernate很高興讓兩個Grails實例同時使用一個DB,至少就會話管理而言。這是否也適用於數據模型的其餘部分,還是這種特殊的複製行爲僅適用於會話,而不適用於其他持久數據? – glenc 2010-11-19 02:43:49

+0

HTTP會話複製和應用程序數據複製通常完全不相關。這主要是因爲你真的應該儘量減少HTTP會話大小(無狀態是最好的),但是會想要複製那裏的任何內容(auth信息等)。但是你想緩存應用程序數據以避免數據庫命中,並且Hibernate二級緩存很好爲了那個原因。使用多個Web服務器時需要使用分佈式緩存。 – 2010-11-19 03:13:03

相關問題