Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在负载平衡环境中,mysql连接池如何与应用程序用户相关?_Mysql_Node.js_Sequelize.js_Connection Pooling - Fatal编程技术网

在负载平衡环境中,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}
我感到困惑的是,究竟是什么打开了连接池,以及连接池的共享程度如何。如何提高性能

具体来说,如果用户访问我的应用程序中的某个端点,那么现在可能会打开100 DB连接(池),空闲寿命为10秒。如果第二个用户访问端点(使用相同的应用程序服务器),它是使用来自现有池的连接,还是为该用户与应用程序的连接打开了一个100的新池?在负载平衡的环境中,这种情况是如何变化的

在单实例场景中,如果用户共享conenction池,并且有100个用户到达一个端点(即最大池大小),会发生什么情况?是否创建了第二个池?查询是否开始等待下一个可用连接,是否返回服务器错误(504)

另一方面,如果池仅可用于单个用户的会话,这是否意味着池大小为100时,my DB只能处理10个用户


如果,正如我所怀疑的,连接可以在应用程序级别共享,即在不同的用户之间共享,那么我们来看看负载平衡场景。我是否有最大作用域将连接池最大值增加到500?这是个好主意还是个坏主意?

增加连接只是一个临时解决方案。如果您的服务器正在一次又一次地创建与每个请求端点的用户的连接,而不是关闭这些连接。当然,连接数会增加,直到出现
连接数过多
错误,服务器将停机。您可以尝试在向端点发出请求后始终关闭连接。这将是
sequelize.close()
connection.end()
。。。