Mysql

管理每個使用者或數據庫的 RDS Aurora MySQL 連接

  • November 10, 2020

我有一個 RDS Aurora MySQL 5.7 和許多連接到它的獨立應用程序。其中一些是實時網站,而另一些是批處理服務(主要連接到閱讀器)。最近的一個事件導致會話數量激增並讓作者下台。我們懷疑這是批處理作業之一。

我的問題是,有沒有辦法限制每個 MySQL 使用者或數據庫的資源/連接/會話數量?如果沒有,除了為每個應用程序創建一個單獨的 RDS 以確保不會刪除其餘部分之外,還有什麼更好的辦法嗎?

謝謝

您可以為每個 MySQL 使用者定義資源選項,並且每個應用程序都應使用自己的憑據。

  • MAX_QUERIES_PER_HOUR
  • MAX_UPDATES_PER_HOUR
  • MAX_CONNECTIONS_PER_HOUR
  • MAX_USER_CONNECTIONS

例子:

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

更多詳細資訊:設置帳戶資源限制

儘管這將限制跨應用程序的影響,但一旦達到這些限制,它將開始失敗。如果系統是真正獨立的並且您沒有資源限制,那麼理想情況下,為了減少爆炸半徑,您應該按照您的建議創建單獨的數據庫,以確保每個應用程序之間沒有影響,轉向微服務架構。

引用自:https://serverfault.com/questions/1041998