MYSQL主從復(fù)制和讀寫分離_第1頁
MYSQL主從復(fù)制和讀寫分離_第2頁
MYSQL主從復(fù)制和讀寫分離_第3頁
MYSQL主從復(fù)制和讀寫分離_第4頁
MYSQL主從復(fù)制和讀寫分離_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)存儲層的技術(shù)分享--觸龍01架構(gòu)的組成〔了解〕0203架構(gòu)的五層模型〔了解〕04數(shù)據(jù)的主從復(fù)制和讀寫別離Contents目錄05架構(gòu)的演變--工程案例分享〔了解〕一.架構(gòu)的組成硬架構(gòu)軟架構(gòu)粗略劃分(非標(biāo)準(zhǔn))1.根據(jù)用戶的地域分布選擇合造的機房2.根據(jù)設(shè)定的網(wǎng)站并發(fā)目標(biāo)選擇帶寬3.根據(jù)技術(shù)團隊的能力劃分效勞器,如:代理效勞器、圖片效勞器、WEB效勞器、緩存效勞器、數(shù)據(jù)庫效勞器、應(yīng)用效勞器、日志效勞器、監(jiān)控效勞器等1.根據(jù)流量入口和營銷重點選擇開發(fā)方向:PC端、M端3.選擇適宜的框架:第三方或自主研發(fā)2.選擇適宜的語言:Java、php、.net、C/C#/C++、Python、javascript、Ruby 等,或者是它們的某些組合4.結(jié)合硬架構(gòu)的效勞器劃分和開發(fā)語言實現(xiàn)負載均衡、緩存、動靜別離、數(shù)據(jù)庫集群和庫表散列、分布式計算等............沒有固定的架構(gòu),架構(gòu)是一個逐步演變的過程!二.架構(gòu)相關(guān)概念負載均衡:(LoadBalance)集群(Cluster):是一組獨立的計算機系統(tǒng)構(gòu)成一個松耦合的多處 理器系統(tǒng),按功能和結(jié)構(gòu)可以分為高可用性集群 High-availability(HA)clusters、負載均衡集群Load

balancingclusters、高性能計算集群High- performance(HP)clusters。架構(gòu)知識集群技術(shù)的一種,通過負載均衡器根據(jù)某種算法合理將計算壓力分配到集群中的每一臺計算機上,以減輕主效勞器的壓力,降低對主效勞器的硬件和軟件要求。三.架構(gòu)五層模型Report層:基于監(jiān)控層、各業(yè)務(wù)層生成的各類報表,以輔助決策者進行決策,如BI等Monitor層:監(jiān)控架構(gòu)系統(tǒng)各軟硬件及應(yīng)用程序的運行狀態(tài)、網(wǎng)絡(luò)效勞、占用資源,并根據(jù)設(shè)定標(biāo)準(zhǔn)完成報警、故障分析、流量分析、入侵檢測等APP層:參與業(yè)務(wù)處理的被封裝成模塊的應(yīng)用程序〔如Auth模塊、User模塊、DB模塊、Cache模塊、Lookup模塊、Log模塊、根據(jù)不同平臺處理不同業(yè)務(wù)的各種模塊等等〕Components層:支撐系統(tǒng)運行,保證架構(gòu)系統(tǒng)業(yè)務(wù)處理的完整性〔如Nginx、Apache、Mysql、Tomcat、PHP、Java、Python、JS、Redis、Mongo、Memcache等〕OS層:架構(gòu)系統(tǒng)的根基〔如操作系統(tǒng)、效勞器間的網(wǎng)絡(luò)通信系統(tǒng)、軟/硬防系統(tǒng)等〕四.MYSQL的主從復(fù)制和讀寫別離4.1.MYSQL主從復(fù)制原理:整體上來說,復(fù)制有3個步驟:(1)master將改變記錄到二進制日志(binarylog)中(2)slave將master的binarylogevents拷貝到它的中繼日志(relaylog);(3)slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。實現(xiàn)整個復(fù)制操作主要由三個進程完成的,其中兩個進程在Slave〔Sql進程和IO進程〕,另外一個進程在Master〔IO進程〕上。MYSQL主從配置流程略它的缺點是:1、Slave實時性的保障,對于實時性很高的場合可能需要做一些處理2、高可用性問題,Master就是那個致命點(SPOF:Singlepointoffailure)四.MYSQL的主從復(fù)制和讀寫別離4.2.MYSQL主從復(fù)制常見架構(gòu)拓撲圖:〔“一主一從”、“一主多從”、“雙主”、“多級復(fù)制”和“多主單向環(huán)形結(jié)構(gòu)”〕四.MYSQL的主從復(fù)制和讀寫別離4.3.MYSQL主從復(fù)制的延遲原因:延遲原因:

主庫多線程并發(fā)更新從庫單線程串行更新1、mysql的主從復(fù)制都是單線程的操作,當(dāng)主庫的TPS并發(fā)較高時,產(chǎn)生的DML和DDL數(shù)量超過slave一個sql線程所能承受的范圍,就會產(chǎn)生延時2、slave的大型SQL查詢語句產(chǎn)生了鎖等待四.MYSQL的主從復(fù)制和讀寫別離4.4.MYSQL主從復(fù)制的延遲解決方案:使用數(shù)據(jù)庫緩存技術(shù):在寫入數(shù)據(jù)庫的同時寫緩存,數(shù)據(jù)先從緩存讀再讀數(shù)據(jù)庫01WEBSERVERAPACHE/NGINX/LIGHTTPD應(yīng)用效勞器Mysql主庫Mysql從庫MemcacheReidsMangoHBase四.MYSQL的主從復(fù)制和讀寫別離4.5.MYSQL主從復(fù)制的延遲解決方案:使用第三方插件:transfer、relayfetch、MYSQLProxy等例:transfer

02Transfer是一個主從多線程同步工具,直接patch在MySQL中,保證從庫無延遲,使得應(yīng)用能夠直接從從庫上讀數(shù)據(jù)。使用transfer以后,Master和Transfer主從關(guān)系,Transfer和Slave是Client-Server關(guān)系!四.MYSQL的主從復(fù)制和讀寫別離4.6.MYSQL讀寫別離常見方法:〔1〕.基于程序代碼內(nèi)部實現(xiàn):在代碼中對select操作分發(fā)到從庫;其它操作由主庫執(zhí)行;這類方法也是目前生產(chǎn)環(huán)境應(yīng)用最廣泛優(yōu)點是性能較好,因為在程序代碼中實現(xiàn),不需要、增加額外的設(shè)備作為硬件開支;缺點是需要開發(fā)人員來實現(xiàn)?!?〕.基于中間代理層實現(xiàn):代理中間層將前臺應(yīng)用的連接請求轉(zhuǎn)發(fā)給后臺的數(shù)據(jù)庫,并且通過腳本實現(xiàn)復(fù)雜的連接控制和過濾,實現(xiàn)數(shù)據(jù)庫的讀寫別離。對于應(yīng)用而言只需要連接到代理監(jiān)聽的端口即可,不關(guān)心后臺的效勞Mysql常見的中間層代理有MySQLProxy,Atlas、Amoeba等四.MYSQL的主從復(fù)制和讀寫別離4.6.1.基于中間層代理實現(xiàn)MySQL讀寫別離之MySQLProxy:mysqlMySQLProxy是基于MySQLClient和MySQLServer之間的代理程序,能夠完成對Client所發(fā)請求的監(jiān)控、修改。從Client角度看,通過Proxy訪問Server和直接訪問Server沒有任何區(qū)別。對于既有的程序而言,只要把直接被訪問的Server的IP地址和端口號換成Proxy的IP地址和端口號就可以。MysqlProxy通過LUA腳本中預(yù)先實現(xiàn)的6個方法實現(xiàn)對于后端mysql數(shù)據(jù)庫效勞器的監(jiān)控和操作。1.connect_server()2.read_handshake()3.read_auth()4.read_auth_result()5.read_query()6.read_query_result()四.MYSQL的主從復(fù)制和讀寫別離4.6.2.基于程序代碼實現(xiàn)MySQL讀寫別離:根本原那么:在代碼操作數(shù)據(jù)庫時進行路由分類, 更新操作主庫,查詢操作分為庫。四.MYSQL的主從復(fù)制和讀寫別離4.6.2.CI框架實現(xiàn)MySQL讀寫別離:也可在數(shù)據(jù)庫封裝的底層操作類〔DB_driver〕里完成讀寫別離,但建議不要,因為會破壞原生態(tài)框架結(jié)構(gòu)!五.架構(gòu)的演變--工程案例分享5.1.架構(gòu)的演變史:(下次單獨分享)第一步:物理別離

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論