Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Personalizar la configuración del clúster

En esta guía, puedes aprender cómo el driver de Go administra clústeres y cómo personalizar la configuración del clúster.

Puedes especificar la configuración de tus clústeres utilizando una cadena de conexión o un ClientOptions struct al crear una nueva instancia de Client. Elija el Connection String o pestaña ClientOptions para ver las opciones disponibles.

La siguiente tabla describe los parámetros que puedes usar en tu cadena de conexión para modificar el comportamiento del driver al interactuar con tu clúster de MongoDB:

Parameter
Descripción

serverSelectionTimeoutMS

Especifica el tiempo máximo que el controlador esperará a que un servidor esté disponible antes de mostrar un error.

Por defecto: 30 segundos

localThresholdMS

Especifica la latencia máxima en milisegundos para seleccionar un servidor.

Por defecto: 15 milisegundos

replicaSet

Especifica el nombre del Set de réplicas al que conectarse.

directConnection

Especifica si se debe conectar directamente a un solo servidor, omitiendo el set de réplicas o el clúster fragmentado.

Por defecto: false

loadBalanced

Especifica si el driver se está conectando a MongoDB utilizando un balanceador de carga. Si se establece en true, el controlador asume que se está conectando a través de un balanceador de carga.

Puede establecer esta opción en true solo si cumple con los siguientes requisitos:

  • Solo especificas un nombre de host

  • No se está conectando a un set de réplicas

  • La opción srvMaxHosts está desactivada o tiene un valor de 0

  • La opción directConnection está desactivada o tiene un valor de false

Por defecto: false

srvServiceName

Especifica el nombre de servicio del registros de recursos SRV que el driver recupera para construir tu lista de nodos iniciales. Debe usar el Formato de conexión de lista de nodos iniciales DNS en su cadena de conexión para utilizar esta opción.

enableOverloadRetargeting

Especifica si el controlador le da menor prioridad a un servidor que devuelve un error de sobrecarga, reduciendo la probabilidad de volver a intentar en el mismo servidor sobrecargado.

Por defecto: false

maxAdaptiveRetries

Especifica el número máximo de veces que el controlador vuelve a intentar una operación que falla con un error de sobrecarga en el lado del servidor.

Por defecto: 2

La siguiente tabla describe varios métodos que puedes encadenar a tu estructura ClientOptions para modificar el comportamiento del driver:

Método
Descripción

SetServerSelectionTimeout()

Especifica el tiempo máximo que el controlador esperará a que un servidor esté disponible antes de mostrar un error.

Por defecto: 30 segundos

SetLocalThreshold()

Especifica la latencia máxima en milisegundos para seleccionar un servidor.

Por defecto: 15 milisegundos

SetReplicaSet()

Especifica el nombre del Set de réplicas al que conectarse.

SetDirect()

Especifica si se debe conectar directamente a un solo servidor, omitiendo el set de réplicas o el clúster fragmentado.

Por defecto: false

SetLoadBalanced()

Especifica si el driver se está conectando a MongoDB utilizando un balanceador de carga. Si se establece en true, el controlador asume que se está conectando a través de un balanceador de carga.

Puede establecer esta opción en true solo si cumple con los siguientes requisitos:

  • Solo especificas un nombre de host

  • No se está conectando a un set de réplicas

  • La opción srvMaxHosts está desactivada o tiene un valor de 0

  • La opción directConnection está desactivada o tiene un valor de false

Por defecto: false

SetSRVServiceName()

Especifica un nombre de servicio personalizado de los registros de recursos SRV que el driver recupera para construir tu lista de nodos iniciales. Para usar un nombre de servicio SRV personalizado en el descubrimiento SRV, debe llamar a esta función antes de llamar a ApplyURI().

SetEnableOverloadRetargeting()

Especifica si el controlador le da menor prioridad a un servidor que devuelve un error de sobrecarga, reduciendo la probabilidad de volver a intentar en el mismo servidor sobrecargado.

Por defecto: false

SetMaxAdaptiveRetries()

Especifica el número máximo de veces que el controlador vuelve a intentar una operación que falla con un error de sobrecarga en el lado del servidor.

Por defecto: 2

Para saber más sobre los métodos disponibles, consulta la sección de Documentación de la API.

Selecciona la pestaña Connection String o ClientOptions para ver el ejemplo correspondiente:

El siguiente código utiliza la cadena de conexión para configurar el tiempo máximo de espera de selección del servidor a 10 segundos y el umbral local a 20 milisegundos:

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

El siguiente código crea un cliente y pasa la cadena de conexión al método ApplyURI():

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

El siguiente código crea un cliente y establece las opciones del clúster con un tiempo de espera máximo de selección de servidor de 10 segundos y un umbral local de 20 milisegundos:

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

Para obtener más información sobre los métodos y tipos en esta guía, consulta la siguiente documentación de la API:

Volver

Comprimir el tráfico de la red

En esta página