




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、kingshard數(shù)據(jù)庫(kù)中間件設(shè)計(jì)與實(shí)現(xiàn)1陳 非github: flikeweibo: chenfei001Agenda 業(yè)務(wù)使用MySQL的痛點(diǎn) 主流MySQL Proxy方案 kingshard的設(shè)計(jì)與實(shí)現(xiàn) 總結(jié)2業(yè)務(wù)使用MySQL的痛點(diǎn)n業(yè)務(wù)實(shí)現(xiàn)讀寫分離業(yè)務(wù)實(shí)現(xiàn)讀寫分離在業(yè)務(wù)中配置主庫(kù)、從庫(kù)的IP和端口DB宕機(jī)或上下線業(yè)務(wù)受影響運(yùn)維協(xié)調(diào)開發(fā)修改業(yè)務(wù)配置3clientdb_masterdb_slave1db_slave2主從同步主從同步業(yè)務(wù)使用MySQL的痛點(diǎn)4n業(yè)務(wù)實(shí)現(xiàn)分庫(kù)分表業(yè)務(wù)實(shí)現(xiàn)分庫(kù)分表 改寫SQL語句 將SQL路由不同的DB 聚合結(jié)果集數(shù)據(jù)庫(kù)中間件的目標(biāo)5n減輕開發(fā)的工作量減輕開
2、發(fā)的工作量支持SQL讀寫分離支持?jǐn)?shù)據(jù)分片開發(fā)更加專注于業(yè)務(wù)邏輯,提升效率n降低降低DBDB的運(yùn)維與業(yè)務(wù)的耦合度的運(yùn)維與業(yè)務(wù)的耦合度DB的上下線業(yè)務(wù)無感知減輕DBA的工作負(fù)擔(dān)主流MySQL Proxy方案6n業(yè)務(wù)已有方案業(yè)務(wù)已有方案AtlasAtlasl擴(kuò)展功能較難l基本不維護(hù)CobarCobarl功能簡(jiǎn)單l基本不維護(hù)MyCatMyCatl易用性較低l開始商業(yè)化kingshard的設(shè)計(jì)目標(biāo)7n核心指導(dǎo)思想核心指導(dǎo)思想簡(jiǎn)單有效n核心功能核心功能讀寫分離數(shù)據(jù)分片提升DB的可運(yùn)維性,減輕DBA負(fù)擔(dān)kingshard的架構(gòu)設(shè)計(jì)8n整體架構(gòu)圖整體架構(gòu)圖kingshard的SQL Parser9nSQLSQ
3、L ParserParser的設(shè)計(jì)與實(shí)現(xiàn)的設(shè)計(jì)與實(shí)現(xiàn)詞法分析器詞法分析器l將SQL切分成tokenl目的:作為語法分析器的輸入語法語法分析器分析器l根據(jù)token和MySQL規(guī)約法則生成AST(abstract syntax tree)l目的:讀寫分離、數(shù)據(jù)分片SQL詞法分析語法分析AST改寫/路由 SQLkingshard的sharding方案10nshardingsharding相關(guān)概念相關(guān)概念分片方式:Hash,Range和Time_RangeShard key類型:整型和MySQL標(biāo)準(zhǔn)時(shí)間類型子表:分表名+序號(hào),最大支持9999張子表。l例如:table_0001,table_1023
4、l落在不同的DB實(shí)例,由配置指定Shard key到實(shí)例采用兩級(jí)映射方案shard_keysub_tableDBconfigconfigkingshard的sharding方案11select * from tab where id = 10rangehashtimeconfig select * from tab_0001 where id = 10calculate table indexkingshard的連接池設(shè)計(jì)12n目標(biāo)目標(biāo)復(fù)用連接,降低后端DB壓力n方式方式一個(gè)DB實(shí)例對(duì)應(yīng)一個(gè)連接池連接池個(gè)數(shù)上限可配置,無空閑連接則阻塞n效果效果前端高并發(fā),MySQL負(fù)載不會(huì)抖動(dòng)限制連接池個(gè)數(shù),
5、保護(hù)后端DB不至于宕機(jī)kingshard的連接池設(shè)計(jì)13kingshardDB1Conn PoolConn PoolDB2connconnconn.poppush連接取出時(shí):l 重置字符集l 重置Databasekingshard支持預(yù)處理的方案14n作用作用 防SQL注入,參數(shù)不做語義解析,只當(dāng)做字符串 提升效率,SQL不再需要重復(fù)解析n示例示例 prepare stmt1 from “SELECT * FROM tbl WHERE id = ?”; set a = 100; execute stmt1 using a; deallocate prepare stmt1;kingshard支
6、持預(yù)處理的方案15n核心矛盾核心矛盾 prepare狀態(tài)與會(huì)話(連接)綁定 連接池機(jī)制要求連接復(fù)用n簡(jiǎn)單的方案簡(jiǎn)單的方案 將prepare/deallocate內(nèi)的所有語句保持在同一個(gè)連接上執(zhí)行 缺點(diǎn):與事務(wù)不同,很多程序不執(zhí)行deallocate,導(dǎo)致連接被占用不放kingshard支持預(yù)處理的方案16nkingshardkingshard支持預(yù)處理方案流程圖支持預(yù)處理方案流程圖kingshard的后端DB的高可用17n方式方式使用獨(dú)立goroutine檢測(cè)DB狀態(tài)定期檢測(cè)每臺(tái)DB是否正常,周期和重試次數(shù)均可配置n效果效果自動(dòng)摘除宕機(jī)或網(wǎng)絡(luò)中斷的DB自動(dòng)掛載恢復(fù)正常的DBkingshardD
7、B_MasterDB_Slave1DB_Slave2業(yè)務(wù)使用kingshard的高可用方案18kingshard對(duì)安全與審計(jì)的支持19n客戶端客戶端IPIP限制限制用戶自定義IP白名單列表nSQLSQL黑名單黑名單用戶定義黑名單SQL列表正則匹配方式,例如:delete from mytable,select count(*) from mytable where id ?n慢慢SQLSQL記錄記錄用戶自定義慢日志耗時(shí)大小kingshard的演進(jìn)計(jì)劃20n重構(gòu)重構(gòu)SQLSQL ParserParser支持復(fù)雜SQL的解析n管理端改造管理端改造以API的方式支持管理命令Web界面操作與展示總結(jié)21n為什么用為什么用GolangGolang開發(fā)開發(fā)開發(fā)效率非常高性能并不差,相當(dāng)于C語言的70%-80%便捷的并發(fā)編程部署簡(jiǎn)單n關(guān)注度
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)平紋網(wǎng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)仿石桌面數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年消防設(shè)施操作員之消防設(shè)備高級(jí)技能題庫(kù)練習(xí)試卷B卷附答案
- 質(zhì)檢員基礎(chǔ)知識(shí)培訓(xùn)課件
- 2025年大學(xué)生防詐騙知識(shí)競(jìng)賽題庫(kù)試題及答案(共60題)
- 企業(yè)人力資源管理系統(tǒng)開發(fā)維護(hù)合同書
- 如何提升英語聽力水平:聽力技巧與素材選擇教學(xué)教案
- 年度金融科技行業(yè)投資研究報(bào)告表
- 水暖安裝勞務(wù)合同
- 戶外廣告位租賃經(jīng)營(yíng)協(xié)議書
- 2025年廣東省深圳法院招聘書記員招聘144人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 百所名校高一數(shù)學(xué)試卷
- 第九章-或有事項(xiàng)教學(xué)教材
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2025年安徽省煙草專賣局(公司)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年春新冀教版英語三年級(jí)下冊(cè)課件 2L2
- 2025年廣西平果市事業(yè)單位招聘工作人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)聯(lián)通廣東省分公司招聘187人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 研學(xué)旅行課程設(shè)計(jì)廣西
- 2024-2030年中國(guó)留學(xué)中介行業(yè)轉(zhuǎn)型模式及未來發(fā)展規(guī)劃研究報(bào)告
- 2025年中考數(shù)學(xué)分類專項(xiàng)復(fù)習(xí)之概率
評(píng)論
0/150
提交評(píng)論