使用 proxySQL 和 MySQL 叢集插入/更新後出現小延遲問題
P粉194919082
P粉194919082 2024-03-21 21:11:42
0
1
305

我們正在將 MySQL 叢集與 proxySQL 結合使用,並進行以下設定:

  • 伺服器 1 是託管主資料庫的主伺服器,位於歐洲
  • 伺服器 2 是位於亞洲的伺服器,用於為本機使用者提供服務,該伺服器包含資料庫的唯讀版本,當發生變更時,伺服器 1 會更新該版本。

問題是這樣的: 伺服器 2 上的使用者觸發 SQL UPDATE,UPDATE 客戶 SET name= 'New Name' WHERE id = 123。 (此更新發送到伺服器 1,然後伺服器 2 更新)

在同一程式碼區塊中,如果我們選擇記錄(SELECT name FROMcustomers WHERE id =123),則該查詢將發送到本地伺服器,結果將是“舊名稱”,除非我們暫停程式碼1 秒(進行測試) 。

我們想到的一個解決方案是更改連接 (PHP) 並直接轉到伺服器 1 來獲取程式碼區塊的剩餘部分,但這有點違背了目的,而且遠非理想(安靜的大型程式碼庫需要更新)。

是否有涉及 proxySQL 的解決方案?

P粉194919082
P粉194919082

全部回覆(1)
P粉122932466

為了防止查詢路由到具有高複製延遲的從屬伺服器,您可以在表 mysql_server 列中設定閾值最大複製延遲 最大複製延遲。參考:max_replication_lag

max_replication_lag – 如果大於 0,ProxySQL 將 定期監控複製延遲以及是否超出配置的範圍 閾值,它將暫時避開主機,直到複製趕上。

您也可以建立查詢規則來拆分查詢讀寫。 ref : ProxySQL 分割讀取/寫入

重要proxysql-gtid-causal-reads 如果您使用的是 Mysql 版本 5.7.5 或更高版本,這可能主要解決您的問題。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!