共計 727 個字符,預(yù)計需要花費(fèi) 2 分鐘才能閱讀完成。
自動寫代碼機(jī)器人,免費(fèi)開通
本篇文章為大家展示了 MySQL 同步延遲如何解決,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
1:應(yīng)用解決方案
在開發(fā)中,假設(shè)延遲是存在的,對于核心業(yè)務(wù)必須要嚴(yán)謹(jǐn),比如說文章隊列,如果獲取不到從庫文章信息,是不是再一次投遞隊列,或者從主庫查詢,盡量減少延遲帶來的影響,當(dāng)然設(shè)計的復(fù)雜度就增加了。
如果你重度依賴緩存,那么如何避免緩存信息是臟的,這更難解決。
2:減負(fù)
mysql 無法是增刪改查,要保持?jǐn)?shù)據(jù)量可控,我最喜歡在不影響應(yīng)用的前提下刪除數(shù)據(jù),看似很 low 的解決方案其實(shí)很管用。
盡量減少慢查詢,以前同步延遲都是查詢帶來的,但這次卻不是,而是隊列大量更新和插入帶來的,比如說每天全量推送用戶,長時間高并發(fā)寫,同步不可避免,所以一定要控制并發(fā)寫入和更新量。
3:選擇合適的解決方案
mysql 盡量作為存儲使用,因為大規(guī)模的查詢和更新并不是它的優(yōu)勢,所以非核心業(yè)務(wù),可以考慮 redis 和 mongodb,尤其是隊列解決方案,不建議使用 mysql,或者說有多套解決方案。
4:拆分
受限于 mysql 本身機(jī)制,可以通過升級 mysql 版本,提升并行復(fù)制能力。或者根據(jù)不同的場景,使用多個庫,甚至多個 mysql 實(shí)例,避免核心服務(wù)受影響。
一方面服務(wù)能夠解耦,另外也方便擴(kuò)展。這也是分而治之的解決思路之一。
5:負(fù)載均衡
有的時候發(fā)現(xiàn)某些從庫不延遲,就一臺延遲,可以通過策略,摘除這臺從庫,但必須意識到,這只是臨時解決方案,出現(xiàn)大量的延遲,說明問題可能已經(jīng)比較嚴(yán)重了。
上述內(nèi)容就是 MySQL 同步延遲如何解決,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。
向 AI 問一下細(xì)節(jié)