2016-11-24 144 views
0

早上好,RavenDB的負載平衡

我使用RavenDB作爲Windows Service安裝在2個不同的服務器上。

故障轉移行爲設置爲:FailoverBehavior.AllowReadsFromSecondariesAndWritesToSecondaries並且啓用這些服務器之間的複製(master => master)。

它在複製方面運行良好。

我想現在負載平衡RavenDB,因爲我不確定當兩臺服務器都啓動並運行時,連接是否使用兩臺服務器來處理請求。

是否有因託管RavenDBWindows Service, IIS

我也考慮設立上的RavenDB箱頂部的負載均衡器,它可以讓請求被處理的方式負載平衡方面有什麼區別不同的盒子,並依賴於複製,因此數據在兩臺服務器中都是一致的。

我不確定這是否正確處理RavenDB的方法。

任何幫助,將不勝感激。

謝謝。

回答

1

負載均衡可以通過FailoverBehavior設置進行設置:

FailoverBehavior = FailoverBehavior.AllowReadsFromSecondariesAndWritesToSecondaries 
    | FailoverBehavior.ReadFromAllServers; 

參見:http://ravendb.net/docs/article-page/3.5/Csharp/client-api/bundles/how-client-integrates-with-replication-bundle

這具有使兩個服務器之間的RavenDB客戶循環賽的效果。

在RavenDB 3.5中,您甚至可以指定所需的SLA,因此您始終可以使用速度更快的服務器。

+0

請問爲什麼故障轉移行爲決定負載平衡?這似乎並不清楚,因爲故障切換意味着主服務器已損壞? – MadOX

+0

這是處理故障轉移的相同代碼(決定選擇哪個服務器的低級網絡代碼) –