我一直在使用REST API转换React应用程序,以使用Netlify的无服务器功能,而且它正在运行,但我注意到有很多连接(数百个(到我的MongoDB Atlas数据库,而我只是在测试一切是否正常。
Mongo在他们的视频和博客中表示,要在函数本身中连接到数据库,因为";只要这个特定函数存在,我们就可以使用同一个客户端,从而减少存在的连接数量">
在他们的例子中,只有一个函数,所以这是有道理的,但假设有多个函数,所有函数共享一个连接不是更好吗?这难道不会进一步减少连接的数量吗?
在Netlify无服务器功能中连接Mongo以减少连接的最佳方式是什么?
是的,但我们所说的是一个无服务器的javascript,这意味着每个函数都在一个独立的javascript线程中运行,不能访问其他变量,在这种特殊情况下是clientPromise
。
从最简单到稳健的问题缓解/解决方案:
- 根据您在处理程序中所做的操作,将连接池限制为1-2个连接
- 考虑数据API而不是本机驱动程序
- 考虑atlas函数
- 引入statefull组件来处理db操作