在应用程序的生命周期内使用单例Azure Cosmos DB客户端
每个DocumentClient实例都是线程安全的,并在直接模式下运行时执行高效的连接管理和地址缓存。为了使DocumentClient能够进行高效的连接管理并获得更好的性能,建议在应用程序的整个生命周期内,对每个AppDomain使用一个DocumentClient实例。
https://docs.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;
}
这是否意味着客户端可用于多个数据库(即,任何数据库中的任何容器)?
如何在dotnet核心应用程序中将DocumentDB客户端初始化为单例
对的数据库和集合是每个文档特定操作的参数,这意味着您可以在许多数据库和集合中完全重用同一客户端。
请记住,这意味着您的数据库或集合之间没有安全隔离。单个主密钥可以访问单个Azure Cosmos DB资源中的所有内容。