2010-12-03 34 views
3

我們開發的應用程序通常部署在單個網絡服務器上。現在我們檢查它是如何在羣集環境中運行的,因爲有些客戶正在使用羣集。J2EE集羣:是否有處理中央配置的通用方法?

問題是應用程序創建一個本地配置(在註冊表/文件中),這在集羣中沒有任何意義。配置由應用程序改變。 是否有一種通用的方法(如接口)來進行集中配置,因此當集羣中部署的應用程序時,config(-file)本身不會在每個節點上重複?任何其他推薦的選項? (使用網絡共享/數據庫/某些MBean上的配置手動執行此操作)

爲什麼通用?它必須運行在不同的應用程序服務器上(如tomcat,jboss,Webspere,weblogic ...),所以我們不能使用某些服務器特有的功能。

感謝。

回答

0

集中配置的最簡單方法是將其放在文件系統上。這樣,無論品牌或版本如何,您都可以將文件系統安裝到您的操作系統並使其可用於您的應用服務器。

我們爲我們的一些應用程序執行此操作。我們關心的共享庫和/或屬性文件(在我們的例子中)。我們設置了JVM parms或JNDI環境變量(試圖轉向這些變量),以便我們可以在運行時查找裝入驅動器的路徑,並從文件中加載數據。

工程對我們來說很漂亮。

現在如果你正在寫信息,那是不同的故事。因此,您不得不擔心您的羣集運行方式(僅高可用性,負載平衡?)。該應用是否在兩個羣集中運行,就好像它是一個應用一樣?還是它在每個羣集節點上獨立運行?如果是這樣,那麼你可能不得不擔心併發寫入。可能更好地使用上面提到的數據庫或其他解決方案之一。

但是,如果你只是在閱讀配置,那麼我會選擇安裝的文件系統,因爲它是最簡單的。

+0

好吧,我懷疑是這樣的。實際上,我們不想要求我們的客戶提供一些附加信息(如配置數據庫)。我和我的團隊會考慮你的想法。謝謝。 – 2010-12-06 08:35:42

0

我會首先考慮JDBC和JDNI,但是如果您希望您的服務器能夠獨立運行,我會建議像subversion/git/mercurial這樣的文件分發系統,即如果您的中央配置服務器停機或不可用,您不希望生產停止。

一個版本控制系統提供了誰做什麼樣的變化時和控制釋放的歷史(和回滾的版本)的

的一種方式,以避免在中央服務器中添加失敗的另一個點的問題是使用數據庫服務器,你已經依賴(假設你有一個)的基礎上,如果它沒有運行,你將不會工作。

相關問題