如何在使用 Azure Cosmos DB 的应用程序配置多主数据库

要在应用程序中使用多主数据库功能,需要启用多区域写入并配置多宿主功能。 通过设置部署应用程序的当前区域来配置多宿主功能。

.NET SDK v2

若要在应用程序中启用多主数据库,请将 UseMultipleWriteLocations 设置为 true,并将 SetCurrentLocation 配置为在其中部署应用程序并复制 Azure Cosmos DB 的区域。

ConnectionPolicy policy = new ConnectionPolicy
    {
        ConnectionMode = ConnectionMode.Direct,
        ConnectionProtocol = Protocol.Tcp,
        UseMultipleWriteLocations = true
    };
policy.SetCurrentLocation("China North 2");

.NET SDK v3(预览版)

若要在应用程序中启用多主数据库,请将 UseCurrentRegion 配置为在其中部署应用程序并复制 Cosmos DB 的区域。

CosmosConfiguration config = new CosmosConfiguration("endpoint", "key");
config.UseCurrentRegion("China North");
CosmosClient client = new CosmosClient(config);

Java 异步 SDK

若要在应用程序中启用多主数据库,请将 policy.setUsingMultipleWriteLocations(true) 设置为 true,并将 policy.setPreferredLocations 配置为在其中部署应用程序并复制 Cosmos DB 的区域。

ConnectionPolicy policy = new ConnectionPolicy();
policy.setUsingMultipleWriteLocations(true);
policy.setPreferredLocations(Collections.singletonList(region));

AsyncDocumentClient client =
    new AsyncDocumentClient.Builder()
        .withMasterKeyOrResourceToken(this.accountKey)
        .withServiceEndpoint(this.accountEndpoint)
        .withConsistencyLevel(ConsistencyLevel.Eventual)
        .withConnectionPolicy(policy).build();

Node.js、JavaScript、TypeScript SDK

若要在应用程序中启用多主数据库,请将 connectionPolicy.UseMultipleWriteLocations 设置为 true,并将 connectionPolicy.PreferredLocations 配置为在其中部署应用程序并复制 Cosmos DB 的区域。

const connectionPolicy: ConnectionPolicy = new ConnectionPolicy();
connectionPolicy.UseMultipleWriteLocations = true;
connectionPolicy.PreferredLocations = [region];

const client = new CosmosClient({
  endpoint: config.endpoint,
  auth: { masterKey: config.key },
  connectionPolicy,
  consistencyLevel: ConsistencyLevel.Eventual
});

Python SDK

若要在应用程序中启用多主数据库,请将 connection_policy.UseMultipleWriteLocations 设置为 true,并将 connection_policy.PreferredLocations 配置为在其中部署应用程序并复制 Cosmos DB 的区域。

connection_policy = documents.ConnectionPolicy()
connection_policy.UseMultipleWriteLocations = True
connection_policy.PreferredLocations = [region]

client = cosmos_client.CosmosClient(self.account_endpoint, {'masterKey': self.account_key}, connection_policy, documents.ConsistencyLevel.Session)

后续步骤

详细了解 Azure Cosmos DB 中的多主数据库、多区域分发和一致性。 请参阅以下文章: