實現Java Web應用程序高可用性的工具有哪些?爲java web應用程序實現高可用性
回答
使用的主要方法不是一種工具。它被稱爲「高質量軟件」 - 即您必須正確處理所有資源(包括同步)。
Apache Hadoop是您可以用來分配和縮放您的系統的東西。但那是巨大的應用程序。
Load balancing也是要看的東西。
同意。最好的HA是通過設計完成的。 – Nate 2010-06-15 14:24:21
也許您正在尋找集羣解決方案? 有Terracotta的JVM集羣的OpenSource版本
赤土陶器確實是一件好事(+1) – Bozho 2010-06-15 14:29:55
集羣可以用大多數開源服務器完成:例如JBoss提供集羣,Tomcat也是如此。 http://docs.jboss.org/jbossas/jboss4guide/r4/html/cluster.chapt.html 這只是解決方案的一部分:在應用程序中具有高可用性需要每個層中的HA來消除單點故障 – 2010-07-05 18:53:42
通過應用程序的所有層的冗餘來消除單點故障。你可以問自己「如果X失敗會發生什麼」的問題,然後找到緩解這種風險的方法。
要開始,你需要:
- 可在多個網絡服務器上同時運行的Web應用程序。
- 負載均衡前端,可以檢測到失敗的Web服務器並將流量路由到其他活動實例。這部分不需要用Java。您需要找到負載平衡器和Web應用程序容器之間的集成點。
完成初始設置之後,您需要找到其他可能的故障點,如數據庫服務器,負載平衡服務器本身,DNS服務器等,然後嘗試添加冗餘和故障切換這些層也是。
你也應該考慮硬件解決方案,如RAID,SAN等
至少有兩個主要方面,你將不得不應對:
- 操作
- 架構,設計,代碼
這些元素都是很大的問題。例如,有幾個專門用於這些站點的好站點(分別參見serverfault.com和stackoverflow.com)。
操作注意事項包括:擴展部署,包括負載平衡,災難恢復,CDN(如果可能)和監控。持續的部署考慮也很重要。
架構 - >代碼考慮因素衆多而且重要。從解決方案的體系結構到可維護性的代碼佈局,以及最難實現的:正確性。我最好的建議是:聘請有經驗的人。如果失敗,請從有經驗的人那裏閱讀書籍等。另外,在Java世界中,對這個重要事實進行討論非常重要:它很可能是之前寫的。這是個好消息!許多非常非常聰明的人花費了無數個小時爲你編寫代碼,並且已經在[雅加達] Apache,谷歌代碼,Codehaus,Sourceforge和衆多其他開源網站等地方免費提供。你對你的問題做的研究越多,你會發現這些球員出現的越多。一個重要的技能是確定哪些可用的軟件適合您。
人們用特定的技術選擇了其他答案,其中很多都是很好的建議,但是這一切都歸結爲你正在試圖解決的實際問題,只有你知道那是什麼(嗯,問題沒有無論如何,我們都不會告訴我們:D)。
- 1. Java應用程序和高可用性
- 2. 將webcache實現爲web應用程序
- 3. 爲web應用程序實現主題
- 4. 如何實現java web應用程序屬性緩存?
- 5. 您可以在Java EE Web應用程序中實現Vue.js嗎?
- 6. 提高Web應用程序的性能
- 7. 提高Java Web應用程序的
- 8. 在Web應用程序中實現OAuth2.0
- 9. 將Web應用程序拆分爲服務/模塊以實現可擴展性
- 10. 如何爲您的Web應用程序實現可接受的性能指標?
- 11. ASP.Net應用程序的高可用性
- 12. Kiosk Web應用程序jQuery實現
- 13. 實現MVP在Web應用程序
- 14. 如何用blazeds + java + flex + tomcat實現一個web應用程序?
- 15. 現有Java應用程序的Web UI
- 16. 全高Web應用程序
- 17. java web應用程序中的可伸縮性和性能
- 18. Java Web應用程序性能問題
- 19. Java Web應用程序性能
- 20. 在Java Web應用程序中使用可配置的屬性
- 21. Java Web應用程序許可證(.war)
- 22. 在春天爲不同用戶實現web應用程序mvc
- 23. 在Java Web應用程序中實現報告
- 24. 在Java Web應用程序實現的WebLogic的WorkManager
- 25. Java EE:在Web應用程序中實現角色管理
- 26. 在基於Java的Web應用程序中實現SSL
- 27. 哪些功能可以提高Web應用程序的可用性
- 28. Web應用程序實用程序類
- 29. 在Java應用程序中實現Growl
- 30. 應用程序高可用性和可伸縮性的環境
我想一些關於您的系統域的更多信息以及關於高可用性在這種情況下意味着什麼的更好定義將會有所幫助。你需要五個正常運行時間嗎?或者你只是在工作時間內尋找99%的正常運行時間?這是什麼樣的應用程序?你說web應用程序,所以我假設你有用戶通過瀏覽器進行交互,但是使用特性是什麼?你有幾十個用戶還是幾十萬用戶?應用程序是否大量使用會話狀態?沒有更多的信息,你的問題很難回答。 – 2010-06-15 15:30:58