2015-02-23 20 views
1

我正在爲RavenDB(服務器和客戶端3.0)設置一個複製和故障轉移項目,現在我正在使用副本數據庫進行測試。RavenDB故障轉移方案。如何知道實際的服務器?

故障轉移行爲很簡單:我有兩個服務器,一個8080,一個在8081的配置基本上是這樣的:

store.FailoverServers.ForDatabases = new Dictionary<string, ReplicationDestination[]> 
{ 
    { 
     "MyDB", 
     new[] 
      { 
       new ReplicationDestination 
        { 
         Url = "http://localhost:8080" 
        }, 
       new ReplicationDestination 
        { 
         Url = "http://localhost:8081" 
        } 
      } 
    } 
}; 

故障切換運作良好,我試圖關閉(第一臺服務器(即DocumentStore配置中使用的服務器)),第二臺服務器按預期響應。

我想知道的是:有沒有一種方法可以理解當前故障切換服務器對查詢做出的響應?如果在會話中,我嘗試導航DocumentSession屬性(如session.Advanced.DocumentStore.Identifier),但找不到對第二個服務器的引用,但我只看到第一個引用,即用於配置的引用。

我錯過了什麼嗎?

回答

1

您可以使用ReplicationInformer.FailoverStatusChanged獲得故障轉移通知。

可以使用訪問複製舉報人:DocumentStore.GetReplicationInformerForDatabase()

+0

感謝您的答覆Ayende,我想這一點,但我可以從ReplicationInformer看到我沒有什麼是實際服務器的簡單信息(s)在使用中,我只得到失敗的服務器failureCounts。那是對的嗎?同樣在ReplicationDestinations上,我只能看到輔助服務器(即使它處於關閉狀態)。 – tanathos 2015-02-23 16:46:10

+0

您將獲得複製目標以瞭解輔助節點,並且主節點是存儲上定義的任何節點。然後你可以使用'ShouldExecuteUsing'方法得到我們將要使用這個節點的任何東西。 – 2015-02-24 18:51:03

相關問題