管理每个用户或数据库的 RDS Aurora MySQL 连接

管理每个用户或数据库的 RDS Aurora MySQL 连接

我有一个 RDS Aurora MySQL 5.7 和许多连接到它的独立应用程序。其中一些是实时网站,而另一些是批处理服务(主要连接到读取器)。最近的一个事件导致会话激增并导致写入器瘫痪。我们怀疑这是其中一个批处理作业。

我的问题是,有没有办法限制每个 MySQL 用户或数据库的资源/连接/会话数量?如果没有,除了为每个应用程序创建单独的 RDS 以确保一个应用程序不会拖垮其余应用程序之外,还有什么更好的办法吗?

谢谢

答案1

您可以为每个 MySQL 用户定义资源选项,并且每个应用程序都应使用自己的凭据。

  • 每小时最大查询次数
  • 每小时最大更新次数
  • 每小时最大连接数
  • 最大用户连接数

例子:

ALTER USER 'john'@'%' WITH MAX_QUERIES_PER_HOUR 90;

更多细节:设置账户资源限制

虽然这会限制对应用程序的影响,但一旦达到这些限制,它就会开始失败。如果系统真正独立,并且您没有资源限制,为了减少影响半径,理想情况下,您可以创建单独的数据库,以确保每个应用程序之间没有影响,然后转向微服务建筑学。

相关内容