Azure cosmosdb 更改多区域Azure Cosmos DB中的提要读取区域

Azure cosmosdb 更改多区域Azure Cosmos DB中的提要读取区域,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我正在使用Cosmos DB多区域(单区域写入)帐户。目前,它在美国东部和西部启用。这个地区在美国西部。ChangeFeed侦听器部署在美国东部和西部 鉴于这种设置,我想了解,变更提要是如何工作的 变更提要侦听器是否从其部署的区域接收变更提要。示例-东部的侦听器从东部读取,西部的侦听器从西部读取 或 它们从写区读取数据。在我的情况下,我们是西方国家 我正在使用change feed处理器库读取change feed,代码为: var feedCollection = new DocumentCo

我正在使用Cosmos DB多区域(单区域写入)帐户。目前,它在美国东部和西部启用。这个地区在美国西部。ChangeFeed侦听器部署在美国东部和西部

鉴于这种设置,我想了解,变更提要是如何工作的

  • 变更提要侦听器是否从其部署的区域接收变更提要。示例-东部的侦听器从东部读取,西部的侦听器从西部读取
  • 它们从写区读取数据。在我的情况下,我们是西方国家
  • 我正在使用change feed处理器库读取change feed,代码为:

    var feedCollection = new DocumentCollectionInfo()
    {
        DatabaseName = configurations.CosmosDb.DatabaseId,
        CollectionName = configurations.CosmosDb.CollectionId,
        Uri = new Uri(configurations.CosmosDb.EndpointUri),
        MasterKey = configurations.CosmosDb.AuthKey
    };
    var leaseCollection = new DocumentCollectionInfo()
    {
        DatabaseName = configurations.LeaseCollection.DatabaseId,
        CollectionName = configurations.LeaseCollection.CollectionId,
        Uri = new Uri(configurations.CosmosDb.EndpointUri),
        MasterKey = configurations.CosmosDb.AuthKey
    };
    
    var builder = new ChangeFeedProcessorBuilder();
    var processor = builder
        .WithHostName(hostName)
        .WithFeedCollection(feedCollection)
        .WithLeaseCollection(leaseCollection)
        .WithObserverFactory(observerFactory)
        .BuildAsync().Result;
    

    默认情况下,将从写入区域(美国西部)读取更改。如果希望从其他区域读取更改,只需使用
    DocumentCollectionInfo
    中的
    ConnectionPolicy
    设置,如下所示:

    ConnectionPolicy regionalPolicy = new ConnectionPolicy();
    regionalPolicy.PreferredLocations.Add("East US");
    var feedCollection = new DocumentCollectionInfo()
    {
        DatabaseName = configurations.CosmosDb.DatabaseId,
        CollectionName = configurations.CosmosDb.CollectionId,
        Uri = new Uri(configurations.CosmosDb.EndpointUri),
        MasterKey = configurations.CosmosDb.AuthKey,
        ConnectionPolicy = regionalPolicy
    };
    

    默认情况下,将从写入区域(美国西部)读取更改。如果希望从其他区域读取更改,只需使用
    DocumentCollectionInfo
    中的
    ConnectionPolicy
    设置,如下所示:

    ConnectionPolicy regionalPolicy = new ConnectionPolicy();
    regionalPolicy.PreferredLocations.Add("East US");
    var feedCollection = new DocumentCollectionInfo()
    {
        DatabaseName = configurations.CosmosDb.DatabaseId,
        CollectionName = configurations.CosmosDb.CollectionId,
        Uri = new Uri(configurations.CosmosDb.EndpointUri),
        MasterKey = configurations.CosmosDb.AuthKey,
        ConnectionPolicy = regionalPolicy
    };
    
    可能的重复可能的重复