node中是否需要关闭对mongodb的连接?

node启动后就打开了对mongo的TCP连接,只要Node进程不结束,它就有始终有一个与mongo处于打开的连接,后续接收到客户端的所有CURD请求,是不是就始终都是走这一个一直处于打开状态的连接?有没有必要释放连接?

在node单线程异步事件模型中,数据库的连接池是否还有必要产生多个连接?node始终使用一个处于打开状态的对数据库的TCP连接,在高并发请求量下,这样是不是性能更好?

阅读 5k
1 个回答

出于性能考虑,凡是应用到数据库(不光是指node或MongoDB)基本上都会保持一个连接池。你看到的应该就是这个连接池中的连接。至于是不是一直有一个,不一定,驱动会根据压力情况决定是否要增加或减少连接。你可以通过连接字符串中的?minPoolSize=[值]&maxPoolSize=[值]来控制最小和最大连接数量。
即使在单线程情况下,也有可能出现多个连接,这点通常交给驱动去控制就好了,没有必要干预。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题