欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL讀寫分離原理詳細解析

 更新時間:2022年07月14日 10:51:35   作者:菜鳥~~  
這篇文章主要介紹了MySQL讀寫分離原理詳細解析,讀寫分離是基于主從復(fù)制來實現(xiàn)的,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

一、讀寫分離的概念

讀寫分離是基于主從復(fù)制來實現(xiàn)的。在實際的應(yīng)用環(huán)境中,肯定是讀操作多,就像我們在電商平臺上去購買東西,可能看了100個也就買了一兩個。所以讀操作永遠比寫這種更新操作多很多。所以我們基于主從復(fù)制的讀寫分離配置,就是讓一個主庫專門用來做數(shù)據(jù)的修改,寫的時候?qū)iT在主庫上寫,主庫通過主從復(fù)制把數(shù)據(jù)的更改通過binlog同步到從庫上去,那么其他的客戶端查詢的請求都會最終映射到從庫上去,而我們一個主庫帶上兩三個從庫,主庫專門用來做數(shù)據(jù)的更新(寫操作),從庫專門用來做讀操作這樣一來可以很好的分攤讀寫的壓力,不用全部都集中在主庫上,對于后端服務(wù)的并發(fā)處理能力有很大的提高,另外就是它的高可用容災(zāi),當主庫掛了以后,可以把指定的從庫變成主庫。

MySQL client通過mysql 提供的API,用mysql自定義的基于TCP的數(shù)據(jù)協(xié)議(簡稱mysql協(xié)議)與MySQL Server通信,訪問MySQL Server數(shù)據(jù)庫。

如果只有一臺服務(wù)器(單機環(huán)境),所有數(shù)據(jù)的增刪改查都是在一臺服務(wù)器上進行,隨著我們的服務(wù)被越來越多的人使用,流量逐漸變大,需要并發(fā)能力逐漸提升,所以如果我們發(fā)現(xiàn)數(shù)據(jù)庫性能到瓶頸了,我們可以做讀寫分離操作,提高后臺服務(wù)。

述

圖中的MySQL主服務(wù)器專門做寫操作,下面連著2個MySQL從服務(wù)器專門做讀操作,讀請求轉(zhuǎn)發(fā)到B、C,寫請求轉(zhuǎn)發(fā)到A。

如果我們在客戶端上直接用代碼寫死,insert、update等寫操作在A上做,show、select等讀操作在B、C上做,相當于代碼和主從環(huán)境就是強綁定的。這就導致代碼的穩(wěn)定性不太好,因為和環(huán)境強相關(guān)了,我們寫代碼得時候必須得知道哪個機器是負責寫操作的主庫,哪個機器是負責讀操作的從庫,由代碼來選擇。而這時如果有某個機器掛掉了,代碼也不會知道,還是按照原來的方式轉(zhuǎn)發(fā)請求,通信就會出現(xiàn)問題,所以把讀寫分離用代碼實現(xiàn)肯定不合適。所以在實際的解決方案中,讀寫分離需要依賴數(shù)據(jù)庫的中間件。

二、引入中間件MyCat

實際上,讀寫分離,分庫分表都是需要依賴數(shù)據(jù)庫中間件(mycat),mycat就是代理服務(wù)器的角色。

客戶端實際上區(qū)分不出來連的是MyCat還是MySQL,因為通信都是遵守的是MySQL通信協(xié)議,之前怎么和MySQL通信,現(xiàn)在就怎么和MyCat通信,所以不用進行區(qū)分。

在MyCat上配置讀寫分離,我們在客戶端上的代碼不用做任何變更,代碼上不需要區(qū)分哪個請求是讀,哪個請求是寫,代碼直接訪問的是MyCat,由MyCat解析請求,根據(jù)SQL的讀寫性質(zhì)轉(zhuǎn)發(fā)到負責相應(yīng)操作的服務(wù)器,實現(xiàn)讀寫分離。

在MyCat上需要配置主服務(wù)器和從服務(wù)器的信息,有3種情況:一主一從、一主多從、多主多從

一主多從場景:當寫庫(master)掛了,MyCat還可以馬上把一個從庫(slave)直接變成一個寫庫(master),那相當于又回到一臺機器的處理,因為從庫和從庫之間并沒有主從復(fù)制的配置,所以我們還需要把變成寫庫的從庫還要和其他從庫之間配置一下主從復(fù)制。

多主多從:

可以看到圖中,MyCat服務(wù)器掛了兩套環(huán)境,如果其中1套的主庫宕機了(它對應(yīng)的從庫也就不能用了),此時MyCat會自動切到另一套環(huán)境,因為M1和M2之間也是配置成互為主從的,所以M2可以同步M1的數(shù)據(jù),提供與M1環(huán)境完全相同的服務(wù),所以它的高可用容災(zāi)能力是非常不錯的。

三、MyCat服務(wù)端口和管理端口

MySQL的服務(wù)端口是3306,MyCat服務(wù)端口是8066(這個端口也是可以改的),也就是MySQL Client連接的是8066端口,登錄8066端口看到的界面就和登錄MySQL Server的3306端口一樣。MyCat還有一個管理端口9066,登錄這個管理端口可以查看MyCat正在工作的所有狀態(tài)以及和后端服務(wù)器的連接,以及連接數(shù)據(jù)源的狀態(tài)等。

到此這篇關(guān)于MySQL讀寫分離原理詳細解析的文章就介紹到這了,更多相關(guān)MySQL讀寫分離 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL無法啟動1067錯誤的又一種解決方法(機房斷電)

    MySQL無法啟動1067錯誤的又一種解決方法(機房斷電)

    今早在對一張table 創(chuàng)建primay key過程中發(fā)生了斷電,當電腦再次啟動時候,發(fā)現(xiàn)mysql 服務(wù)無法啟動,使用 net start 提示 1067錯誤,折騰了2個小時無法解決,后來只能通過手工刪除數(shù)據(jù)文件,日志文件,再啟動服務(wù),然后導入數(shù)據(jù)來完成
    2013-01-01
  • 淺談mysql密碼遺忘和登陸報錯的問題

    淺談mysql密碼遺忘和登陸報錯的問題

    下面小編就為大家?guī)硪黄獪\談mysql密碼遺忘和登陸報錯的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Mysql更改默認引擎為Innodb的步驟方法

    Mysql更改默認引擎為Innodb的步驟方法

    mysql默認是關(guān)閉InnoDB存儲引擎的使用的,而Mysql默認引擎是MyISAM,而MyISAM并不支持事務(wù)處理,因為最近項目中的需要所以要更換引擎,通過查找網(wǎng)上的資料后解決了,現(xiàn)在將步驟方法分享給大家,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • MySQL essential版本和普通版本有什么區(qū)別?

    MySQL essential版本和普通版本有什么區(qū)別?

    安裝mysql的朋友可能會發(fā)現(xiàn)有時候我們看到essential版本,究竟與其它mysql版本有什么區(qū)別呢,這里簡單介紹下
    2013-06-06
  • MySQL優(yōu)化之如何了解SQL的執(zhí)行頻率

    MySQL優(yōu)化之如何了解SQL的執(zhí)行頻率

    MySQL 客戶端連接成功后,通過 show [session|global]status 命令 可以提供服務(wù)器狀態(tài)信息,也可以在操作系統(tǒng)上使用 mysqladmin extended-status 命令獲得這些消息
    2014-05-05
  • CentOS 7下安裝與配置MySQL 5.7

    CentOS 7下安裝與配置MySQL 5.7

    Mysql5.7和之前版本的MySQL有一些不同,現(xiàn)把CentOS 7下MySQL 5.7安裝、配置完整過程記下來,或許對新手來說有用。希望大家能夠喜歡
    2018-01-01
  • 更改MySQL數(shù)據(jù)庫的編碼為utf8mb4問題

    更改MySQL數(shù)據(jù)庫的編碼為utf8mb4問題

    這篇文章主要介紹了更改MySQL數(shù)據(jù)庫的編碼為utf8mb4問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • MySQL最大連接數(shù)限制的修改步驟

    MySQL最大連接數(shù)限制的修改步驟

    針對一些訪問量比較大的網(wǎng)站,Mysql默認的最大連接數(shù)可能不夠用,需要進行相應(yīng)的修改,下面這篇文章主要給大家介紹了關(guān)于MySQL最大連接數(shù)限制的修改步驟,需要的朋友可以參考下
    2022-07-07
  • mysql 5.7.27 安裝配置方法圖文教程

    mysql 5.7.27 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 5.7.27 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • M1芯片安裝mysql8.0數(shù)據(jù)庫的實現(xiàn)步驟(圖文)

    M1芯片安裝mysql8.0數(shù)據(jù)庫的實現(xiàn)步驟(圖文)

    這篇文章主要介紹了M1芯片安裝mysql8.0數(shù)據(jù)庫的實現(xiàn)實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02

最新評論