2009-01-08 43 views
2

我有一個Glassfish v2u2集羣有兩個實例,我想在它們之間進行故障切換。我在這個主題上讀到的每個文檔都說我應該在Glassfish的前面使用負載平衡器,比如Apache httpd。在這種情況下故障轉移可以工作,但我又遇到了單點故障。 Glassfish能夠在沒有負載平衡器的情況下進行故障切換嗎?沒有負載平衡器的Glassfish故障切換

+0

什麼是您的單點故障?負載均衡器本身? – 2009-01-08 07:33:58

+1

如果我在前面使用Apache在Glassfish集羣中負載均衡和故障轉移實例,那麼是的,那麼Apache就是單點故障。 – kovica 2009-01-09 06:03:22

回答

-1

不,您不能在應用程序級別執行此操作。

的選項有:

  • 循環賽DNS - 既暴露你的服務器連接到互聯網,讓客戶做負載均衡 - 這是相當有吸引力的,因爲它一定會實現故障切換。
  • 使用不同的3層負載平衡系統 - 如「Windows網絡負載平衡」,「Linux的網絡負載平衡」或一個我編寫了一個名爲「Fluffy Linux cluster
  • 使用一個單獨的負載均衡器具有熱故障轉移備用

在這些情況下,您仍然需要確保您的數據庫和會話數據等可用,並且在羣集成員之間同步,這在實踐中要困難得多。

+0

循環法DNS提供了糟糕的負載平衡,它不提供故障轉移。如果一個人失敗了,那麼一些用戶不能訪問該網站。 – corydoras 2009-11-05 23:16:27

0

嗯..根據文檔(http://docs.jboss.org/jbossas/jboss4guide/r4/html/cluster.chapt.html)第16.1.2.1章,JBoss可以在沒有負載平衡器的情況下進行故障轉移。客戶端攔截器。

據我所知,glassfish集羣提供節點之間的內存會話複製。如果我使用Sun Glassfish企業應用服務器,我可以使用HADB,這可以提供99.999%的可用性。

1

我們解決了這個問題,我們有兩個IP地址,它們都對URL做出響應。 DNS提供商(DNS Made Easy)將在兩者之間循環。將超時設置爲低將確保如果一臺服務器失敗,另一臺服務器將會回答。當一臺服務器停止響應時,DNS Made Easy將只發送其他主機作爲服務器來響應此URL。您將不得不信任DNS提供商,但您可以購買具有極高可用性的DNS查詢服務

至於高可用性,您可以通過集羣設置允許會話複製,以便用戶不會失去更多比潛在的一個請求失敗。