sql >> Base de Datos >  >> NoSQL >> MongoDB

Tiempo de espera de conexión a MongoDb en Azure VM

Después de buscar aquí mis consideraciones:

  • Por lo general, es una buena práctica implementar algún tipo de lógica de reintento en cada recurso al que accede en Azure (base de datos, máquina virtual, etc.). Para MongoDb hay una implementación parcial, por lo que potencialmente debería escribir la suya propia. Consulte también este problema y esto .
  • Si es posible, todos los recursos en Azure deben estar en la misma red virtual de Azure (de esta manera, todas las conexiones se realizan mediante una IP privada de Azure en lugar de una IP pública. Esto también es útil por razones de seguridad, ya que no es necesario abrir un punto final al público.
  • Al implementar MongoDb en Azure, intente seguir las directrices oficiales de MongoDb .
  • En este caso particular, debe configurar net.ipv4.tcp_keepalive_time a un valor inferior al tcp keepalive de Azure, que por defecto es de 240 segundos. De esta forma, la conexión se cierra y el controlador MongoDb puede interceptar esta condición y abrir una nueva conexión. Si Azure cierra la conexión, el controlador no puede interceptarla. Si desea cambiar esta configuración en Azure (no recomendado), puede encontrarla dentro de la configuración de IP pública.

En mi entorno de desarrollo he configurado net.ipv4.tcp_keepalive_time a 120 y ahora todo parece funcionar bien. Tenga en cuenta que si aloja MondoDb dentro de un contenedor Docker, debe establecer esta configuración en el host Docker.

Aquí algunos otros enlaces útiles: