2011-02-04 53 views
1

由於各種不幸的管理原因(預算限制等),開發人員已將我的應用程序部署到生產環境中。問題在於我沒有任何生產EJB應用服務器部署的經驗。也就是說,他們意識到沒有成功的保證。Glassfish 3 EJB應用程序部署建議?

上下文

  • 開發服務器上Glassfish的第三版最新版本的Netbeans的運行,一臺Mac機
  • 98%/ 99%的正常運行時間是確定的,沒有金融/關鍵事務
  • 它是一個客戶端/服務器EJB 3應用程序,並且當前在同一臺計算機上運行的Web層,業務層和資源層。
  • 我有自由選擇硬件/軟件基礎設施
  • 負荷估計:10個同時CONNEXIONS AVG,罕見的200個峯
  • 出站的公共數據是文本/小圖片(它是iPhone客戶端),入境HTTP文本只有
  • 基本維修將採取(備份,服務器重啓等)

我的問題生產部署的護理:

  • 什麼是必須有基礎設施方面?最低系統規格等?
  • 保持Glassfish v3可以嗎?
  • 我應該關注服務器的哪些配置方面?
  • 最糟糕的情況:如果我在開發過程中部署相同的軟件基礎架構(Netbeans/Glassfish v3),服務器能否跟上?

任何建議都是最受歡迎的。謝謝!

回答

1

對於體系結構,您可以從沒有前臺Web服務器的GlassFish實例(GlassFish內置一個非常強大的GlassFish實例)入手。如果您可以等待GlassFish 3.1的發佈,則可以添加實例(集羣或獨立)並提供可伸縮性和集中管理。

GlassFish的大多數生產實例我看過運行1GB-2GB的JVM堆(-Xmx),但是如果您在內存中加載大量數據或者使用某些框架,您的里程可能會有所不同。如果你想要更好的可靠性,讓它們在不同的機器上顯然是一個優點。在同一臺機器上有兩個實例可以在一個實例失敗時提供服務的連續性(但如果機器發生故障,則不提供服務)。

我建議腳本儘可能使用「asadmin」命令行工具調配資源(連接池,JDBC數據源等)和應用程序,並儘量不要在生產環境中使用NetBeans平臺。

模擬負載的基準測試聽起來像是一件明智的事情,試圖在上線之前放在一起,這個survival guide可能會派上用場。

你沒有提到數據庫。是不是有一個?

+0

非常感謝JSS和Alexis MP的回答。是的,該數據庫目前是一個德比數據庫(資源層),但我正在考慮使用MySQL作爲生產數據庫。對此有何建議? – DavidD 2011-02-07 08:35:45

1

我建議如下:

  1. 不是Mac的專家,但我會說去與6GB以上內存
  2. 硬盤空間是沒有問題的,這些天
  3. 不知道多少生根粉蘋果處理器(雙核芯片等)
  4. 我個人並沒有在生產中使用GF3,但我希望它現在穩定,所以你應該沒問題。

系統架構:

  1. 接收一些Web服務器(Apache或太陽web服務器)和負載均衡的所有HTTP請求與Glassfish的服務器(S)。
  2. 現在,根據您的物理(或虛擬)機器在每臺機器上創建Glassfish Application Server實例。如果您只有一臺機器,則創建至少2個Glassfish實例。這將有助於將一個節點放下,以便維護和繼續前進。
  3. 就部署而言,請確保您停止調試日誌並微調JPA日誌等。
  4. 使用Ant或其他腳本部署代碼並對現有代碼進行備份。

我希望這將有助於啓動和休息,你可以問或解決你的問題。

祝你好運。