单例 Azure Cosmos DB 客户端

Pin*_*ong 5 azure azure-cosmosdb azure-cosmosdb-sqlapi

在应用程序的生命周期内使用单例 Azure Cosmos DB 客户端

每个 DocumentClient 实例都是线程安全的,并且在直接模式下操作时执行高效的连接管理和地址缓存。为了通过 DocumentClient 实现高效的连接管理和更好的性能,建议在应用程序的生命周期中为每个 AppDomain 使用单个 DocumentClient 实例。

https://learn.microsoft.com/en-us/azure/cosmos-db/performance-tips

services.AddSingleton<IDocumentClient>(x => new DocumentClient(UriEndpoint, MasterKey));

private readonly IDocumentClient _documentClient;
public HomeController(IDocumentClient documentClient){
    _documentClient = documentClient;
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着客户端可以用于多个数据库(即任何数据库中的任何容器)?

如何在 dotnet 核心应用程序中将 DocumentDB 客户端初始化为单例

Nic*_*sas 7

正确的。数据库和集合是每个文档特定操作的参数,这意味着您可以跨多个数据库和集合完全重用同一客户端。

请记住,这意味着您的数据库或集合之间没有安全隔离。单个主密钥可以访问单个 Azure Cosmos DB 资源中的所有内容。