Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Go Driver
/ /

クラスター設定をカスタマイズする

このガイドでは、 Goドライバーがクラスターを管理する方法と、クラスター設定をカスタマイズする方法を学習できます。

新しい Clientインスタンスを作成するときに、接続文字列または ClientOptions 構造体を使用してクラスターの設定を指定できます。 利用可能なオプションを確認するには、Connection String タブまたは ClientOptionsタブを選択します。

次の表では、 MongoDBクラスターを操作するときにドライバーの動作を変更するために接続文字列で使用できるパラメーターについて説明します。

Parameter
説明

serverSelectionTimeoutMS

ドライバーがエラーをスローする前に、サーバーが利用可能になるまで待機する最大時間を指定します。

デフォルト: 30 秒

localThresholdMS

サーバーを選択するための最大レイテンシをミリ秒単位で指定します。

デフォルト: 15 ミリ秒

replicaSet

接続先のレプリカセットの名前を指定します。

directConnection

レプリカセットまたはシャーディングされたクラスターをバイパスし、 単一サーバーに直接接続するかどうかを指定します。

デフォルト: false

loadBalanced

ドライバーが ロードバランサーを使用してMongoDBに接続しているかどうかを指定します。true に設定されている場合、ドライバーは ロードバランサーを介して接続していると想定します。

このオプションは、次の要件を満たす場合にのみ、true に設定できます。

  • ホスト名は 1 つのみ指定します

  • レプリカセットに接続していません。

  • srvMaxHosts オプションが設定されていないか、値が 0 になっている

  • directConnection オプションが設定されていないか、値が false になっている

デフォルト: false

srvServiceName

シードリストを構築するためにドライバーが取得する SRVリソースレコードのサービス名を指定します。このオプションを使用するには、接続文字列で DNS シードリスト接続形式 を使用する必要があります。

次の表では、ClientOptions 構造体に連結してドライバーの動作を変更できるいくつかの方法について説明しています。

方式
説明

SetServerSelectionTimeout()

ドライバーがエラーをスローする前に、サーバーが利用可能になるまで待機する最大時間を指定します。

デフォルト: 30 秒

SetLocalThreshold()

サーバーを選択するための最大レイテンシをミリ秒単位で指定します。

デフォルト: 15 ミリ秒

SetReplicaSet()

接続先のレプリカセットの名前を指定します。

SetDirect()

レプリカセットまたはシャーディングされたクラスターをバイパスし、 単一サーバーに直接接続するかどうかを指定します。

デフォルト: false

SetLoadBalanced()

ドライバーが ロードバランサーを使用してMongoDBに接続しているかどうかを指定します。true に設定されている場合、ドライバーは ロードバランサーを介して接続していると想定します。

このオプションは、次の要件を満たす場合にのみ、true に設定できます。

  • ホスト名は 1 つのみ指定します

  • レプリカセットに接続していません。

  • srvMaxHosts オプションが設定されていないか、値が 0 になっている

  • directConnection オプションが設定されていないか、値が false になっている

デフォルト: false

SetSRVServiceName()

シードリストを構築するためにドライバーが取得する SRVリソースレコードのカスタム サービス名を指定します。SRV 検出でカスタム SRV サービス名を使用するには、ApplyURI() を呼び出す前にこの関数を呼び出す必要があります。

利用可能なメソッドの詳細については、 APIドキュメント セクションを参照してください。

対応する例を表示するには、Connection String タブまたは ClientOptionsタブを選択します。

次のコードでは、接続文字列を使用して、サーバー選択の最大タイムアウトを 10 秒に、ローカルしきい値を 20 ミリ秒に設定します。

const uri = "mongodb://localhost:27017/?serverSelectionTimeoutMS=10000&localThresholdMS=20"

次のコードではクライアントを作成し、接続文字列をApplyURI() メソッドに渡します。

client, err := mongo.Connect(options.Client().ApplyURI(uri))
if err != nil {
log.Fatal(err)
}

次のコードでは、クライアントを作成し、 クラスターオプションの最大サーバー選択タイムアウトは 10 秒で、ローカルしきい値は 20 ミリ秒に設定します。

clientOptions := options.Client().
ApplyURI(uri).
SetServerSelectionTimeout(10 * time.Second).
SetLocalThreshold(20 * time.Millisecond)
client, err := mongo.Connect(clientOptions)
if err != nil {
log.Fatal(err)
}

このガイドのメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

ネットワーク トラフィックを圧縮

項目一覧