缓存Database&是否正确? Azure CosmosDB中的DocumentCollection对象?

时间:2018-03-06 11:53:10

标签: azure azure-cosmosdb

我正在修补repository pattern for CosmosDB。我修改了代码以使用单例CosmosDb Scala。存储库的每个实例都在进行网络调用以获取DocumentClient& Database。所以我想知道缓存DocumentCollection&是否正确。 Database个对象,就像我的情况一样,我只有一个集合&一个数据库。

1 个答案:

答案 0 :(得分:1)

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

为了避免出现问题,您应该只为每个CosmosDB实例创建一个DocumentClient,并在数据库中为每个集合创建一个DocumentCollection,否则会产生额外的不必要实例化开销,并且在高负载下你会体验插座耗尽。

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

private static volatile DocumentClient cosmosClient;