2013-11-03 63 views
3

我是阿卡的新手。但我一直在web項目工作多年。 此前,我們的用戶「ngix + Tomcat集羣」計劃,一旦Tomcat服務器崩潰(物理機毀人亡)之一,Tomcat集羣中的其他成員將接管註定要失敗的服務器的請求。我們通過這個實現了高可用性。 在我們的新Web項目中,我們計劃使用akka來實現容錯和可伸縮性。這裏有一臺服務器是主演員,他的工作是將請求消息從外部分發給兒童演員。兒童演員可以在本地或遠程分發。一旦有任何一個小孩演員失敗,主演就會修復它。 我的問題是,一旦掌握演員的失敗(也許是機器crashs),我應該怎麼實現這個案件的高可用性?如果機器崩潰,主演員駐留,我們必須手動重新啓動機器。在這段時間內,服務必須暫停一段時間。這是我們不能接受的。 誰能告訴我,我該怎麼辦才能解決這個問題?如何在分佈式系統中解析akka,實現高可用性?

+0

你得到解決..? – Muhunthan

回答

0

我會建議使用外部負載平衡器。例如,你可以在你的阿卡羣集節點的所有地址報告給你的web應用程序的中間層(並緩存也有一段時間),負載均衡請求的方式從中層到您的阿卡後端(例如,挑選隨機整羣節點每次)。

如果您的Akka後端爲您的兒童演員重新獲得某種單點資源獲取,您可以嘗試使用Cluster Singleton作爲主演員。在這種情況下,所有集羣節點都應將客戶端請求發送到集羣Singleton,然後集羣Singleton可以以某種特定方式在所有集羣節點之間分配任務。