Mysql主從複製應對高併發

2021-09-24 14:41:52 字數 1068 閱讀 3879

這裡有我之前寫的一篇文章:

分庫分表會用到讀寫分離,因為使用不同的儲存引擎,來分別應對讀場景和寫場景。

那用到讀寫分離,就一定要用到主從複製,比方說我們需要向乙個庫裡邊寫資料,另外乙個庫之讀,這就考慮到資料同步的問題。

顧名思義,高併發就是每秒很多的事要去處理。

其實所謂的高併發的解決方案,也就是分散壓力。單機的物理瓶頸是無法突破的,就像是磁碟的讀寫速度,一定是有極限的,就像是cpu的處理能力是有極限的。

那麼可行的方案都有什麼呢?

利用快取redis,redis是基於記憶體的資料庫,它有極高的讀寫速度。

利用訊息佇列的削峰,非同步載入。

讀寫分離

除此之外就是解決物理極限的問題,既然單機不行,那就多台機器一起去處理。

概念是這樣的,我們想要乙個機器寫,乙個機器讀(有需求的話可以一批機器讀,一批機器寫),那麼我們需要保證兩個資料庫裡邊的資料是一樣的,也就是要保證資料的一致性。那就有了乙個問題:資料同步的問題,想讓兩個資料庫資料一致,資料怎麼同步呢?

資料同步:

master主庫的寫操作都會儲存乙份binlog(二進位制日誌),主庫寫資料的操作,在從庫回放一下,就能做到同步資料了。

想自己做一遍案例的話推薦乙個帖子(具體操作都有,可以跟著來):

主從搭建好以後,再說幾個坑:

在從庫裡邊插資料,是乙個坑,會導致資料無法同步。

主從複製原理圖:

主庫的所有寫操作都記錄在binlog裡邊去,從庫和主庫建立好聯絡以後,就安排乙個執行緒負責監控binlog的動靜,binglog發生改變,立馬將變化的地方告訴自己的realylog(中繼日誌),然後再安排乙個程序負責監控中繼日誌的變化,一旦變化了立馬更新自己的資料庫內容。

監控的執行緒是單執行緒的,這是主從複製演示問題的主要**。mysql5.7以後可以使用多執行緒。

mysql主從複製

罪過啊,博主最近好久沒有更新部落格了,轉有道雲筆記了,筆記裡還有些乾貨,最近慢慢分享出來吧。博主最近發現有好多想學,但是發現精力有限啊,博主本來是搞個開發的,但是偏偏想把運維,dba的技術全都學了 mysql集群,nginx等等等 但是發現精力有限,所以簡單了解一下,mysql的主從複製,後面還有m...

MySQL 主從複製

1.概念 將主伺服器的資料複製到另外一台或多台伺服器的過程。也即將主資料庫的ddl和dml操作通過二進位制日誌傳到復 務器上,然後在從伺服器上對這些日誌進行重新執行,從而 保持資料同步。2.作用 降低主伺服器的訪問壓力 避免主伺服器因故障導致資料丟失。3.操作步驟 1 主伺服器將資料的改變記錄到二進...

MySQL 主從複製

資料分布。負載均衡 備份高可用性和故障切換 mysql公升級測試 mysql實現複製可以看做是三個步驟 在主庫上把資料更改記錄到二進位制日誌 binary log 中 這些記錄被稱為二進位制日誌事件 在每次準備提交事務完成資料更新前,主庫將資料更新的事件記錄到二進位制日誌中,在記錄二進位制日誌後,主...