我正在为RavenDB(服务器和客户端3.0)设置一个包含复制和故障转移的项目,现在我正在使用副本数据库进行测试。
故障转移行为非常简单:我有两个服务器,一个在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)我找不到对第二个服务器的引用,但我只看到第一个引用,即用于配置的引用。
我错过了什么吗?
答案 0 :(得分:1)
您可以使用ReplicationInformer.FailoverStatusChanged
获得有关故障转移的通知。
您可以使用以下代码访问复制通知器:DocumentStore.GetReplicationInformerForDatabase()