RavenDB故障转移方案。如何知道实际的服务器?

时间:2015-02-23 15:32:28

标签: ravendb database-replication failover

我正在为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)我找不到对第二个服务器的引用,但我只看到第一个引用,即用于配置的引用。

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您可以使用ReplicationInformer.FailoverStatusChanged获得有关故障转移的通知。

您可以使用以下代码访问复制通知器:DocumentStore.GetReplicationInformerForDatabase()