2012-02-03 57 views
3

假設我有一臺路由器,它被配置爲在多個遠程節點上創建角色。也許我有這樣的配置:檢測來自akka路由器的遠程節點的故障

akka { 
     actor { 
      deployment { 
       /fooRouter { 
       router = round-robin 
       resizer { 
        lower-bound = 2 
        upper-bound = 10 
       } 
       target { 
        nodes = ["akka://[email protected]:2555", "akka://[email protected]:2555"] 
       } 
      } 
     } 
    } 

如果我們假裝這些節點,10.0.1.1之一,因爲某些原因,已失去連接到數據庫服務器,這樣傳遞給它的所有消息都會導致失敗。有沒有什麼辦法可以讓路由器知道10.0.1.1節點是無效的並停止使用它?

+1

當數據庫出現故障時,您是否試圖阻止其他節點上的子節點? – 2012-02-04 10:33:23

回答

2

不,目前沒有。您可以讓故障節點上的演員自殺,但只要調整器啓動新的節點,它們就會重新出現。即使有羣集支持 - 這還未到 - 這不會是自動的,因爲連接到某個外部資源不是羣集可達性度量的一部分。這意味着你將不得不編寫代碼明確地關閉該節點,然後可以將演員遷移到其他節點(細節還沒有完全充實)。

所以,你現在必須編寫你自己的路由器作爲真正的演員,考慮到可達性。