2016-11-24 186 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

这是处理故障转移的相同代码(决定选择哪个服务器的低级网络代码) –