【问题标题】:Should a new Cloud Spanner Client instance be created on every request?是否应该针对每个请求创建一个新的 Cloud Spanner 客户端实例?
【发布时间】:2017-10-07 05:04:58
【问题描述】:

Google 的官方 Cloud Spanner Go 客户端库有一个 NewClient() 函数,它接受 Context。通常,Contexts 作为(可能长时间运行的)请求链的一部分传递。这是否意味着 NewClient() 旨在为需要访问 Cloud Spanner 的服务处理的每个唯一请求调用?

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

另一方面,Cloud Spanner 总的来说相当神奇,因此得知这实际上是一种受鼓励且有效的模式,我不会感到惊讶。不过,很高兴知道,而且文档并没有真正讨论它。

【问题讨论】:

    标签: database go google-cloud-platform google-cloud-spanner


    【解决方案1】:

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

    没有。将客户端视为与数据库的连接。每个连接可以服务于许多请求,通常在应用程序初始化期间创建,并在应用程序关闭或不再需要数据库时关闭。

    您可以拥有多个客户端(连接),以便在需要时并行处理请求。

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      相关资源
      最近更新 更多