在Azure Cosmos DB的情况下,缓存数据库和文档集合对象是否正确?

问题描述 投票:2回答:1

我正在修补repository pattern for CosmosDB。我修改了代码以获得单例CosmosDb DocumentClient。存储库的每个实例都在进行网络调用以获取DatabaseDocumentCollection。所以我想知道缓存DatabaseDoumentCollection对象是否正确,因为在我的情况下我只有一个集合和一个数据库。

azure azure-cosmosdb
1个回答
1
投票

您看到的许多“演示”代码都是“不正确的”,因为只需几行代码即可从CosmosDB创建或读取内容。由于体积小,这将在没有单件的情况下正常工作。将简单操作扩展到高容量多线程应用程序,您将看到问题。

为了避免出现问题,您应该只在数据库中为每个CosmosDB实例和一个DocumentClient创建一个DocumentCollection,否则会产生额外的不必要实例化开销,在高负载下,您将遇到套接字耗尽。

我们也标记为易变(C#):

private static volatile DocumentClient cosmosClient;
© www.soinside.com 2019 - 2024. All rights reserved.