2017-05-09 24 views
1

Goの公式クラウドスパナクライアントライブラリNewClient()は、Contextを受け入れます。通常、Contextは(潜在的に長時間実行される)要求チェーンの一部として渡されます。これは、NewClient()が、Cloud Spannerにアクセスする必要のあるサービスによって処理される一意の要求ごとに呼び出されることを意味していますか?リクエストごとに新しいCloud Spanner Clientインスタンスを作成する必要がありますか?

従来のリレーショナルデータベースを使用していた場合、リソース使用量(ネットワーク接続など)を減らすために、プロセスによって何度も使用されるクライアントの共有プールを作成していました。リクエストハンドラが始動するたびにユニークなデータベースクライアントを作成するというアイデアは、私には少し不本意です。クライアントライブラリの意図された使用法を誤解しているのではないかと思います。

一方、Cloud Spanner は一般的には魔法のようになので、これは実際には奨励された効率的なパターンであることを私にはあまり驚かないでしょう。それでも、確かに知っているのはうれしいですし、ドキュメントは実際にそれについて議論しません。これはNEWCLIENT()がクラウド スパナにアクセスする必要のあるサービスが扱う各 ユニークな要求のために呼び出されることを意図していることを意味するものではない

答えて

2

いいえ。クライアントとデータベースの接続を考えます。各接続は多くの要求を処理でき、通常はアプリケーションの初期化時に作成され、アプリケーションが終了するか、データベースが不要になったときに閉じられます。

複数のクライアント(接続)を持つことができ、必要に応じて並行して要求を処理できます。

関連する問題