Overview
このガイドでは、 Goドライバーがクラスターを管理する方法と、クラスター設定をカスタマイズする方法を学習できます。
設定を指定する
新しい Clientインスタンスを作成するときに、接続文字列または ClientOptions 構造体を使用してクラスターの設定を指定できます。 利用可能なオプションを確認するには、Connection String タブまたは ClientOptionsタブを選択します。
次の表では、 MongoDBクラスターを操作するときにドライバーの動作を変更するために接続文字列で使用できるパラメーターについて説明します。
Parameter | 説明 |
|---|---|
| ドライバーがエラーをスローする前に、サーバーが利用可能になるまで待機する最大時間を指定します。 デフォルト: 30 秒 |
| サーバーを選択するための最大レイテンシをミリ秒単位で指定します。 デフォルト: 15 ミリ秒 |
| 接続先のレプリカセットの名前を指定します。 |
| レプリカセットまたはシャーディングされたクラスターをバイパスし、 単一サーバーに直接接続するかどうかを指定します。 デフォルト: |
| ドライバーが ロードバランサーを使用してMongoDBに接続しているかどうかを指定します。 このオプションは、次の要件を満たす場合にのみ、
デフォルト: |
| シードリストを構築するためにドライバーが取得する SRVリソースレコードのサービス名を指定します。このオプションを使用するには、接続文字列で DNS シードリスト接続形式 を使用する必要があります。 |
| ドライバーが過負荷エラーを返すサーバーの優先順位を下げ、同じ過負荷サーバーで再試行の可能性を減らすかどうかを指定します。 デフォルト: |
| サーバー側の過負荷エラーで失敗した操作をドライバーが再試行する最大回数を指定します。 デフォルト: |
次の表では、ClientOptions 構造体に連結してドライバーの動作を変更できるいくつかの方法について説明しています。
方式 | 説明 |
|---|---|
| ドライバーがエラーをスローする前に、サーバーが利用可能になるまで待機する最大時間を指定します。 デフォルト: 30 秒 |
| サーバーを選択するための最大レイテンシをミリ秒単位で指定します。 デフォルト: 15 ミリ秒 |
| 接続先のレプリカセットの名前を指定します。 |
| レプリカセットまたはシャーディングされたクラスターをバイパスし、 単一サーバーに直接接続するかどうかを指定します。 デフォルト: |
| ドライバーが ロードバランサーを使用してMongoDBに接続しているかどうかを指定します。 このオプションは、次の要件を満たす場合にのみ、
デフォルト: |
| シードリストを構築するためにドライバーが取得する SRVリソースレコードのカスタム サービス名を指定します。SRV 検出でカスタム SRV サービス名を使用するには、 |
| ドライバーが過負荷エラーを返すサーバーの優先順位を下げ、同じ過負荷サーバーで再試行の可能性を減らすかどうかを指定します。 デフォルト: |
| サーバー側の過負荷エラーで失敗した操作をドライバーが再試行する最大回数を指定します。 デフォルト: |
利用可能なメソッドの詳細については、 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 ドキュメント
このガイドのメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。