1
Google的官方Cloud Spanner客户端库有一个NewClient()
函数,它接受Context
。通常,Context
作为(可能长期运行的)请求链的一部分传递。这是否意味着NewClient()
旨在针对需要访问Cloud Spanner的服务处理的每个独特请求调用?是否应该在每个请求上创建一个新的Cloud Spanner Client实例?
如果我使用传统的关系数据库,我会创建一个共享的客户端池,以便进程多次使用以减少资源使用(例如网络连接)。每当请求处理程序启动时创建唯一数据库客户端的想法对我来说有点让人失望,我不知道我是否误解了客户端库的预期用法。
另一方面,云扳手是相当神奇的一般,所以它不会让我吃惊,因为这实际上是一个鼓励和有效的模式。尽管如此,确实很好,文档也没有真正讨论它。