Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

353
Vistas
¿Hay un límite para establecer minPoolSize para Mongodb?

Estoy tratando de configurar las conexiones de un grupo a mi programa Go con mongodb, donde configuré minPoolSize en 20 conexiones usando el controlador mongodb go. Algo como eso:

 cli, err := mongo.Connect(ctx, options.Client().ApplyURI(uri).SetMinPoolSize(20).SetMaxConnIdleTime(time.Second*5))

Hice una prueba donde mi programa alcanzó las 100 conexiones permitidas. Después de 5 segundos, la cantidad de conexiones se redujo a 10. Pero debería haber mantenido 20 conexiones. Si configuro minPoolSize en 5, funciona bien.

¿10 conexiones son un límite para MinPoolSize para mongodb? ¿Cómo puedo cambiarlo para mantener 20 conexiones?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Establece el tiempo máximo de inactividad de la conexión en 5 segundos. Citando de ClientOptions.SetMaxConnIdleTime() :

SetMaxConnIdleTime especifica la cantidad máxima de tiempo que una conexión permanecerá inactiva en un grupo de conexiones antes de que se elimine del grupo y se cierre. Esto también se puede configurar a través de la opción URI "maxIdleTimeMS" (p. ej., "maxIdleTimeMS=10000"). El valor predeterminado es 0, lo que significa que una conexión puede permanecer sin usar indefinidamente.

Los 5 segundos que establece significan que si una conexión está en el grupo y no se usa durante 5 segundos, se puede eliminar del grupo.

Y dijo que esperó 5 segundos y experimentó que las conexiones en el grupo estaban cerradas. Este es el comportamiento previsto/permitido.

Si desea que las conexiones permanezcan activas indefinidamente, no establezca el tiempo máximo de inactividad de la conexión ni establezca 0 explícitamente:

 cli, err := mongo.Connect(ctx, options.Client() .ApplyURI(uri) .SetMinPoolSize(20) .SetMaxConnIdleTime(0))

Podría preguntar cuál es el punto de establecer el tamaño mínimo del grupo si aún se pueden eliminar las conexiones. Sí, eso es cierto, pero solo después de que haya expirado el tiempo de inactividad. El tamaño del grupo puede superar el mínimo permitido, por ejemplo, si establece 20 como mínimo y se necesitan 100 conexiones, entonces se pueden crear 100 conexiones. Si todas esas 100 conexiones quedan inactivas, puede estar seguro de que al menos 20 se mantendrán activas durante el tiempo de inactividad. Si el tamaño mínimo del grupo se estableciera en 10, solo tendría la garantía de que 10 se mantendrían vivos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda