2017-05-09 16 views
1

Google的官方Cloud Spanner客户端库有一个NewClient()函数,它接受Context。通常,Context作为(可能长期运行的)请求链的一部分传递。这是否意味着NewClient()旨在针对需要访问Cloud Spanner的服务处理的每个独特请求调用?是否应该在每个请求上创建一个新的Cloud Spanner Client实例?

如果我使用传统的关系数据库,我会创建一个共享的客户端池,以便进程多次使用以减少资源使用(例如网络连接)。每当请求处理程序启动时创建唯一数据库客户端的想法对我来说有点让人失望,我不知道我是否误解了客户端库的预期用法。

另一方面,云扳手相当神奇的一般,所以它不会让我吃惊,因为这实际上是一个鼓励和有效的模式。尽管如此,确实很好,文档也没有真正讨论它。

回答

2

这是否意味着NewClient()的目的是要调用由它需要访问云 扳手服务处理的每个 唯一的请求?

否。将客户端视为与数据库的连接。每个连接都可以处理很多请求,通常在应用程序初始化时创建,并在应用程序关闭或不再需要数据库时关闭。

您可以有许多客户端(连接),以便您可以并行处理请求(如果需要)。

相关问题