版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、mycat 20:30開始講師:君臨天下 , 156927834北京尚學(xué)堂大數(shù)據(jù)極限班課程官網(wǎng)地址: mycat好消息! 大數(shù)據(jù)登陸上海灘!5月9日之后所有學(xué)費(fèi)上調(diào),具體聯(lián)系咨詢老師!(北京)大數(shù)據(jù)線下班將于5月6日開班!火熱報名中!(上海)大數(shù)據(jù)線下班將于6月21日開班!火熱報名中!- 第一期有優(yōu)惠!- 老師面授課程!傳統(tǒng)式教室教學(xué)已開班多期!學(xué)習(xí)完美就業(yè)!(北京)大數(shù)據(jù)周末班將于5月7日再次開班!火熱報名中!線上班Hadoop階段推出后,第二階段Spark線上班5月22日正式推出!-附送隨堂講課視頻賈老師:1786418286何老師:1926106490詹老師:2805048645討論技術(shù)
2、可以加入以下 , 156927834mycatmycat教學(xué)多重保障:1,貫徹實(shí)戰(zhàn)教育理念2,每節(jié)隨堂筆記,有圖有代碼3,提供服務(wù)器配置,搭建步驟說明4,有問題老師一對一輔導(dǎo)5,同學(xué)們良好的學(xué)習(xí)氛圍6,尚學(xué)堂科技有限公司是一個實(shí)體公司,已做教育多年,有著良好的口碑7,尚學(xué)堂大數(shù)據(jù)班老師均有豐富的授課經(jīng)驗(yàn),線下線上課都有官網(wǎng): Mycat是什么Mycat是什么Mycat的由來Mycat的架構(gòu)Mycat使用方法Mycat解決海量關(guān)系型數(shù)據(jù)讀寫的最優(yōu)方案Mycat是什么一個用于MySQL讀寫分離和與數(shù)據(jù)切分的高可用中間件一個模擬為MySQL Server的超級數(shù)據(jù)庫代理一個能平滑擴(kuò)展支持1000億大
3、表的分布式數(shù)據(jù)庫系統(tǒng)一個可管控多種關(guān)系數(shù)據(jù)庫的數(shù)據(jù)庫路由器Mycat之前世今生2013年阿里的Cobar在某大型項(xiàng)目中使用過程中發(fā)現(xiàn)存在一些比較嚴(yán)重的問題,于是第一代改良版Mycat誕生。Mycat開源以后,一些Cobar的用戶參與了Mycat的開發(fā),最終Mycat發(fā)展成為一個由眾多軟件公司的實(shí)力派架構(gòu)師和資深開發(fā)人員維護(hù)的社區(qū)型開源軟件。2014年Mycat首次在上海的中華架構(gòu)師大會上對外宣講,引發(fā)圍觀,更多的人參與進(jìn)來,隨后越來越多的項(xiàng)目采用了Mycat2015年7月為止,Mycat項(xiàng)目總共有16個Committer,其中核心參與者的年薪總額超過200萬2015年5月,由核心參與者們一起編
4、寫的第一本官方權(quán)威指南Mycat權(quán)威指南電子版發(fā)布,累計超過500本,成為開源項(xiàng)目中的首創(chuàng)。截至2015年7月,超過100個項(xiàng)目采用Mycat,涵蓋銀行、電信、電子商務(wù)、物流、移動應(yīng)用、O2O的眾多領(lǐng)域和公司。Mycat之前世今生截至2014年7月,Mycat官方QQ群已經(jīng)超過2700人,大多數(shù)為資深I(lǐng)T工程師、架構(gòu)師、DBA、以及一些CXO和高端獵頭,成為國內(nèi)具有影響力的高端IT專業(yè)群Mycat社區(qū)首次提出BigSQL的概念,并逐步將大數(shù)據(jù)和實(shí)時計算等先進(jìn)技術(shù)引入到Mycat里,從而吸引和聚集了一大批業(yè)內(nèi)大數(shù)據(jù)和云計算方面的資深工程師,Mycat社區(qū)成為名副其實(shí)的國內(nèi)大數(shù)據(jù)領(lǐng)域?qū)嵙ε沙蓡T。M
5、ycat社區(qū)里不斷有優(yōu)秀工程師被創(chuàng)業(yè)公司挖走,為了能更好的支持創(chuàng)業(yè)公司并尋求更多的優(yōu)秀工程師參與采用,Mycat社區(qū)目前已經(jīng)開始開展在線高端IT培訓(xùn),培養(yǎng)高端Java架構(gòu)師、工程師。系統(tǒng)切分及其解決方案何為數(shù)據(jù)(系統(tǒng))切分? 簡單來說,就是指通過某種特定的條件,按照某個維度,將我們存放在同一個數(shù)據(jù)庫中的數(shù)據(jù)分散存放到多個數(shù)據(jù)庫(主機(jī))上面以達(dá)到分散單庫(主機(jī))負(fù)載的效果。 切分模式:a.垂直(縱向)切分。B.水平切分。垂直拆分一個數(shù)據(jù)庫由很多表的構(gòu)成,每個表對應(yīng)著不同的業(yè)務(wù),垂直切分是指按照業(yè)務(wù)將表進(jìn)行分類,分布到不同的數(shù)據(jù)庫上面,這樣也就將數(shù)據(jù)或者說壓力分擔(dān)到不同的庫上面優(yōu)點(diǎn): -拆分后業(yè)務(wù)
6、清晰,拆分規(guī)則明確。 -系統(tǒng)之間整合或擴(kuò)展容易。 -數(shù)據(jù)維護(hù)簡單。缺點(diǎn): -部分業(yè)務(wù)表無法join,只能通過接口方式解決,提高了系統(tǒng)復(fù)雜度。 -受每種業(yè)務(wù)不同的限制存在單庫性能瓶頸,不易數(shù)據(jù)擴(kuò)展跟性能提高 -事務(wù)處理復(fù)雜。水平拆分相對于垂直拆分,水平拆分不是將表的數(shù)據(jù)做分類,而是按照某個字段的某種規(guī)則來分散到多個庫之中,每個表中包含一部分?jǐn)?shù)據(jù)。簡單來說,我們可以將數(shù)據(jù)的水平切分理解為是按照數(shù)據(jù)行的切分,就是將表中的某些行切分到一個數(shù)據(jù)庫,而另外的某些行又切分到其他的數(shù)據(jù)庫中,主要有分表,分庫兩種模式優(yōu)點(diǎn): 不存在單庫大數(shù)據(jù),高并發(fā)的性能瓶頸。 對應(yīng)用透明,應(yīng)用端改造較少。 按照合理拆分規(guī)則拆分
7、,join操作基本避免跨庫。 提高了系統(tǒng)的穩(wěn)定性跟負(fù)載能力。缺點(diǎn): 拆分規(guī)則難以抽象。 分片事務(wù)一致性難以解決。 數(shù)據(jù)多次擴(kuò)展難度跟維護(hù)量極大。 跨庫join性能較差拆分處理的難點(diǎn)垂直切分跟水平切分的不同跟優(yōu)缺點(diǎn),會發(fā)現(xiàn)每種切分方式都有缺點(diǎn),但共同的特點(diǎn)缺點(diǎn)有:引入分布式事務(wù)的問題??绻?jié)點(diǎn)Join 的問題。跨節(jié)點(diǎn)合并排序分頁問題。針對數(shù)據(jù)源管理,目前主要有兩種思路:A. 客戶端模式,在每個應(yīng)用程序模塊中配置管理自己需要的一個(或者多個)數(shù)據(jù)源,直接訪問各個數(shù)據(jù)庫,在模塊內(nèi)完成數(shù)據(jù)的整合; 優(yōu)點(diǎn):相對簡單,無性能損耗。 缺點(diǎn):不夠通用,數(shù)據(jù)庫連接的處理復(fù)雜,對業(yè)務(wù)不夠透明,處理復(fù)雜B. 通過中間
8、代理層來統(tǒng)一管理所有的數(shù)據(jù)源,后端數(shù)據(jù)庫集群對前端應(yīng)用程序透明; 優(yōu)點(diǎn):通用,對應(yīng)用透明,改造少。 缺點(diǎn):實(shí)現(xiàn)難度大,有二次轉(zhuǎn)發(fā)性能損失。拆分原則切分原則:盡量不切分,架構(gòu)是進(jìn)化而來,不是一蹴而就。最大可能的找到最合適的切分維度。由于數(shù)據(jù)庫中間件對數(shù)據(jù)Join 實(shí)現(xiàn)的優(yōu)劣難以把握,而且實(shí)現(xiàn)高性能難度極大,業(yè)務(wù)讀取盡量少使用多表Join盡量通過數(shù)據(jù)冗余,分組避免數(shù)據(jù)垮庫多表join。盡量避免分布式事務(wù)。單表切分?jǐn)?shù)據(jù)1000萬以內(nèi)。拆分方案360 Atlasalibaba cobar MycattddlheisenbergOceanusvitessOneProxy drdsMycat -遵守Mys
9、ql原生協(xié)議,跨語言,跨數(shù)據(jù)庫的通用中間件代理。-基于心跳的自動故障切換,支持讀寫分離,支持MySQL一雙主多從,以及一主多從-有效管理數(shù)據(jù)源連接,基于數(shù)據(jù)分庫,而不是分表的模式。-基于Nio實(shí)現(xiàn),有效管理線程,高并發(fā)問題。-支持?jǐn)?shù)據(jù)的多片自動路由與聚合,支持sum,count,max等常用的聚合函數(shù)。-支持2表join,甚至基于caltlet的多表join。-支持通過全局表,ER關(guān)系的分片策略,實(shí)現(xiàn)了高效的多表join查詢。-支持多租戶方案。-支持分布式事務(wù)(弱xa)-支持全局序列號,解決分布式下的主鍵生成問題。-分片規(guī)則豐富,插件化開發(fā),易于擴(kuò)展。-強(qiáng)大的web,命令行監(jiān)控。-支持前端作為
10、mysq通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。-集群基于ZooKeeper管理,在線升級,擴(kuò)容,智能優(yōu)化,大數(shù)據(jù)處理(2.0開發(fā)版)。Mycat架構(gòu)圖 Mycat 邏輯庫(schema)-邏輯表(table) - ER 表 - 非分片表 - 分片表 - 全局表- 分片節(jié)點(diǎn)(datanode) -節(jié)點(diǎn)主機(jī)(datahost) -分片規(guī)則(rule)-全局序列號(sequence)-多租戶邏輯庫與邏輯表Mycat抽象多個myql實(shí)例,對外提供唯一的訪問數(shù)據(jù)源Server.xml mycat orderdb 邏輯庫與邏輯表Schema.
11、xml select 1 select 1 Rule.xml user_id func1 1 1024 拆分字段(拆分維度)Mycat全局表ordershost1ordershost2ordershost3ordershost4insert into orders (xxx)Mycat ER表及ER關(guān)系模型ER模型就是將表按照相同拆分規(guī)則,相同拆分值,切分到同一個分片節(jié)點(diǎn)上,避免出現(xiàn)跨分片的join的一種切分模型??梢耘渲脼楦缸颖?,也可以不配置為父子表。ER表及ER關(guān)系模型 -Mycat數(shù)據(jù)join解決方案全局表技術(shù)獨(dú)創(chuàng)的ER關(guān)系分片基于Catlet的sharejoin兩表自動Join模塊復(fù)雜
12、SQL可通過用戶自定義的Catlet進(jìn)行處理Catlet是Java編寫的一段程序,類似數(shù)據(jù)庫中的存儲過程,可以實(shí)現(xiàn)任意復(fù)雜SQL的Join、Group、Order等功能Mycat高可用讀寫分離和自動切換機(jī)制基于心跳的自動切換Mycat 支持基于MySQL主從復(fù)制狀態(tài)的高級讀寫分離與主從切換控制機(jī)制。強(qiáng)制讀寫節(jié)點(diǎn)解決讀寫分離時延問題Mycat高可用完整架構(gòu)Mycat讀寫分片MyCAT的讀寫分離機(jī)制如下:a.事務(wù)內(nèi)的SQL,默認(rèn)走寫節(jié)點(diǎn),以注釋/*balance*/開頭,則會根據(jù)balance=“1” 或“2”或“3” 去獲取 .b.自動提交的select語句會走讀節(jié)點(diǎn),并在所有可用讀節(jié)點(diǎn)中間隨機(jī)
13、負(fù)載均衡,默認(rèn)根據(jù)balance=“1” 或“2”或“3” 去獲取,以注釋/*balance*/開頭則會走寫,解決部分已經(jīng)開啟讀寫分離,但是需要強(qiáng)一致性數(shù)據(jù)實(shí)時獲取數(shù)據(jù)的場景走寫c. 當(dāng)某個主節(jié)點(diǎn)宕機(jī),則其全部讀節(jié)點(diǎn)都不再被使用,因?yàn)榇藭r,同步失敗,數(shù)據(jù)已經(jīng)不是最新的,MYCAT會采用另外一個主節(jié)點(diǎn)所對應(yīng)的全部讀節(jié)點(diǎn)來實(shí)現(xiàn)select負(fù)載均衡。d.當(dāng)所有主節(jié)點(diǎn)都失敗,則為了系統(tǒng)高可用性,自動提交的所有select語句仍將提交到全部存活的讀節(jié)點(diǎn)上執(zhí)行,此時系統(tǒng)的很多頁面還是能出來數(shù)據(jù),只是用戶修改或提交會失敗。dataHost的balance屬性設(shè)置為:0,不開啟讀寫分離機(jī)制1,全部的readH
14、ost與stand by writeHost參與select語句的負(fù)載均衡,簡單的說,當(dāng)雙主雙從模式(M1-S1,M2-S2,并且M1與M2互為主備),正常情況下,M2,S1,S2都參與select語句的負(fù)載均衡。2,所有的readHost與writeHost都參與select語句的負(fù)載均衡,也就是說,當(dāng)系統(tǒng)的寫操作壓力不大的情況下,所有主機(jī)都可以承擔(dān)負(fù)載均衡。3. 全部的讀節(jié)點(diǎn)參數(shù)讀,寫節(jié)點(diǎn)不參與,如果配置了多個writerhost,則多個writerhost下面的readhost參數(shù)讀負(fù)載。Mycat讀寫分片MyCAT的讀寫分離的配置如下: select user() Mycat事務(wù)Myc
15、at對事務(wù)的支持為弱xa,如果業(yè)務(wù)需要嚴(yán)格的強(qiáng)一致性,需要采用事務(wù)補(bǔ)償方案,或者盡量避免跨庫操作。mycat的事務(wù)處理是,依次輪詢需要處理的分片執(zhí)行對應(yīng)的Sql,當(dāng)應(yīng)用commit時在依次輪詢commit。如果中間一個分片執(zhí)行sql出錯全部回滾。但是如果應(yīng)用發(fā)起commit命令,Mycat發(fā)起commit到db成功,但是實(shí)際db未成功時,mycat無法保證各個節(jié)點(diǎn)回滾,這就是弱xa。Mycat事務(wù)-異步化處理-最終一致性Mycat主從及多主配置dataHost的writeType屬性設(shè)置為: writeType=0 默認(rèn)配置。 writeType=1 代表配置多主,mycat會往所有寫節(jié)點(diǎn),隨
16、機(jī)寫數(shù)據(jù),但是每次只會寫入一個節(jié)點(diǎn),此模式下無讀節(jié)點(diǎn),節(jié)點(diǎn)之間開啟數(shù)據(jù)庫級別同步。此配置為mysql高級級別使用,因?yàn)槎嘀鲿頂?shù)據(jù)庫同步問題。Mycat主從及多主配置 select user() Mycat全局序列號全局序列號是MyCAT提供的一個新功能,為了實(shí)現(xiàn)分庫分表情況下,表的主鍵是全局唯一,而默認(rèn)的MySQL的自增長主鍵無法滿足這個要求。全局序列號的語法符合標(biāo)準(zhǔn)SQL規(guī)范,其格式為:next value for MYCATSEQ_GLOBAL其中MYCATSEQ_GLOBAL是序列號的名字,MyCAT自動創(chuàng)建新的序列號,免去了開發(fā)的復(fù)雜度,另外,MyCAT也提供了一個全局的序列號,名稱為:MYCATSEQ_GLOBAL。注意,MYCATSEQ_必須大寫才能正確識別。 參見: Mycat多數(shù)據(jù)庫支持More.Mycat引擎MySql的引擎InnoDB與MyISAMMyISAM 是MySQL中默認(rèn)的存儲引擎,一般來說不是有太多人關(guān)心這個東西。但是面對實(shí)際的業(yè)務(wù)問題,這里需要思考一番Mycat引擎你需要事務(wù)支持嗎
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綜合組網(wǎng)課程設(shè)計
- 路基碾壓施工方案
- 2025年全民健身活動合作協(xié)議
- 2025年分銷合同表格
- 2025年度叉車租賃與節(jié)能改造工程合同3篇
- 二零二四年醫(yī)院生物樣本庫建設(shè)與合作轉(zhuǎn)化合同3篇
- 裝修選材解析課程設(shè)計
- 2025年增資協(xié)議書面模板樣本
- 2025版智能家居產(chǎn)品定制研發(fā)生產(chǎn)銷售合同4篇
- 賴氨酸的發(fā)酵課程設(shè)計
- 人教版小學(xué)數(shù)學(xué)(2024)一年級下冊第一單元 認(rèn)識平面圖形綜合素養(yǎng)測評 B卷(含答案)
- 企業(yè)年會攝影服務(wù)合同
- 電商運(yùn)營管理制度
- 二零二五年度一手房購房協(xié)議書(共有產(chǎn)權(quán)房購房協(xié)議)3篇
- 2025年上半年上半年重慶三峽融資擔(dān)保集團(tuán)股份限公司招聘6人易考易錯模擬試題(共500題)試卷后附參考答案
- 城市公共交通運(yùn)營協(xié)議
- 內(nèi)燃副司機(jī)晉升司機(jī)理論知識考試題及答案
- 2024北京東城初二(上)期末語文試卷及答案
- 2024設(shè)計院與職工勞動合同書樣本
- 2024年貴州公務(wù)員考試申論試題(B卷)
- 電工高級工練習(xí)題庫(附參考答案)
評論
0/150
提交評論