Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

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 usando una cadena de conexión o una estructura ClientOptions al crear una nueva instancia Client. Selecciona la pestaña Connection String o 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 del servicio de los registros de recursos SRV que el driver recupera para construir tu lista de nodos iniciales. Debe utilizar 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: