Google官方的Cloud Spanner客户端库有一个Context
函数,可以接受Context
。通常,NewClient()
作为(可能长期运行的)请求链的一部分传递。这是否意味着要为需要访问Cloud Spanner的服务处理的每个唯一请求调用SelectMany
?
如果我使用传统的关系数据库,我将创建一个客户端共享池的共享池,以便减少资源使用(例如网络连接)。在请求处理程序启动时创建一个唯一的数据库客户端的想法对我来说有点不利,我想知道我是否误解了客户端库的预期用法。
另一方面,Cloud Spanner 总体而言非常神奇,所以我不会太惊讶地发现这实际上是一种鼓励和有效的模式。不过,知道肯定会很高兴,而且文档并没有真正讨论它。
答案 0 :(得分:2)
这是否意味着要为每个调用NewClient() 由需要访问云的服务处理的唯一请求 扳手?
没有。将客户端视为与数据库的连接。每个连接都可以为许多请求提供服务,通常在应用程序初始化期间创建,并在应用程序关闭或不再需要数据库时关闭。
您可以拥有多个客户端(连接),以便您可以根据需要并行处理请求。