Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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/7/neo4j/3.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_.net_Entity Framework_Amazon Web Services_Amazon Aurora - Fatal编程技术网

Mysql 实体框架轮询

Mysql 实体框架轮询,mysql,.net,entity-framework,amazon-web-services,amazon-aurora,Mysql,.net,Entity Framework,Amazon Web Services,Amazon Aurora,我有一个网站,它使用轮询不断地从使用.NET和实体框架设置的API获取信息。我的数据库托管在AWS Aurora MySQL中。今天,当我使用MySql工作台访问我的生产数据库时,它说连接太多了 据我所知: 1.实体框架管理连接的打开和关闭 2.AWS自动根据用户请求进行扩展 为什么我会遇到这个问题 这是AWS问题还是.NET应用程序问题 这里有两点: 第1点: 实体框架确实管理连接,但这仍然取决于您如何使用它 一般来说,EF中的DB上下文是一个IDisposable对象。这意味着,如果您将其放

我有一个网站,它使用轮询不断地从使用.NET和实体框架设置的API获取信息。我的数据库托管在AWS Aurora MySQL中。今天,当我使用MySql工作台访问我的生产数据库时,它说连接太多了

据我所知: 1.实体框架管理连接的打开和关闭 2.AWS自动根据用户请求进行扩展

为什么我会遇到这个问题

这是AWS问题还是.NET应用程序问题

这里有两点:

第1点:

实体框架确实管理连接,但这仍然取决于您如何使用它

一般来说,EF中的DB上下文是一个IDisposable对象。这意味着,如果您将其放在“使用”块中,它将关闭连接并为您处置对象。大概是这样的:

using (var db = new DBContext())
{
   [...]
}
否则,如果它不在using块内,则应始终记住处置它。我还将明确关闭保险连接

第2点: AWS RDS不会自动缩放。您可以在创建时选择DB实例大小,然后可以手动更改实例类型。您甚至可以在运行时进行某种自动垂直缩放,但垂直缩放有其自身的局限性:

  • 如果您的数据库位于单个AZ中,这意味着更改数据库实例类型时,您将有一段停机时间,因为数据库实例需要关闭并重新启动
  • 如果它是一个多AZ实例,那么您现有的连接仍将断开,并且您的应用程序需要重新建立连接

  • 您的代码是否鲁莽地创建连接,例如为每个查询打开一个新连接?您可能需要重新启动数据库实例才能访问它,在重新启动数据库实例时,请密切关注
    SHOW PROCESSLIST
    ,以查看在您开始运行应用程序时,它是否开始被休眠连接阻塞。非常感谢,我将对此进行调查