在负载平衡环境中,mysql连接池如何与应用程序用户相关?
对于连接池的具体工作方式以及如何在应用程序及其用户之间共享该池,我有点困惑 具体而言,我有以下设置:在负载平衡环境中,mysql连接池如何与应用程序用户相关?,mysql,node.js,sequelize.js,connection-pooling,Mysql,Node.js,Sequelize.js,Connection Pooling,对于连接池的具体工作方式以及如何在应用程序及其用户之间共享该池,我有点困惑 具体而言,我有以下设置: 2台负载平衡服务器(NodeJ) 1台数据库服务器(最大连接数为1000) ORM正在nodeJs上运行sequelize,池为:{max:100,min:0,idle:10000} 我感到困惑的是,究竟是什么打开了连接池,以及连接池的共享程度如何。如何提高性能 具体来说,如果用户访问我的应用程序中的某个端点,那么现在可能会打开100 DB连接(池),空闲寿命为10秒。如果第二个用户访问端点
- 2台负载平衡服务器(NodeJ)
- 1台数据库服务器(最大连接数为1000)
- ORM正在nodeJs上运行sequelize,池为:{max:100,min:0,idle:10000}
如果,正如我所怀疑的,连接可以在应用程序级别共享,即在不同的用户之间共享,那么我们来看看负载平衡场景。我是否有最大作用域将连接池最大值增加到500?这是个好主意还是个坏主意?增加连接只是一个临时解决方案。如果您的服务器正在一次又一次地创建与每个请求端点的用户的连接,而不是关闭这些连接。当然,连接数会增加,直到出现
连接数过多
错误,服务器将停机。您可以尝试在向端点发出请求后始终关闭连接。这将是sequelize.close()
,connection.end()
。。。