版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于代理方式的分庫(kù)分表中間件dbproxy目的地技術(shù)部周文斌目錄 解決的問(wèn)題 總體架構(gòu) 前端連接管理 路由模塊 SQL執(zhí)行模塊 后端連接管理 負(fù)載均衡 權(quán)限控制2022-2-25Dbproxy是什么? 數(shù)據(jù)庫(kù)代理 關(guān)系數(shù)據(jù)庫(kù)的路由器 關(guān)系數(shù)據(jù)庫(kù)升級(jí)到大數(shù)據(jù)的應(yīng)用中間件 基于開源的mycat實(shí)現(xiàn) 支持?jǐn)?shù)據(jù)的水平拆分2022-2-25解決的問(wèn)題 數(shù)據(jù)的增長(zhǎng)存儲(chǔ)問(wèn)題 數(shù)據(jù)庫(kù)連接的集中式管理 數(shù)據(jù)庫(kù)的透明化擴(kuò)展 數(shù)據(jù)庫(kù)的透明化遷移2022-2-25實(shí)現(xiàn)的功能 分庫(kù)分表 讀寫分離 負(fù)載均衡 服務(wù)注冊(cè)發(fā)現(xiàn) 權(quán)限控制目錄 解決的問(wèn)題 總體架構(gòu) 前端連接管理 路由模塊 SQL執(zhí)行模塊 后端連接管理 負(fù)載均衡
2、權(quán)限控制2022-2-25總體架構(gòu)mysqlmysqlpgBackendConnectionManagerpgDriverFrontendConnectionManager協(xié)議適配(mysql)協(xié)議解析Sql解析規(guī)則路由Sql executor結(jié)果合并響應(yīng)報(bào)文客戶端客戶端MysqlDriverMysql數(shù)據(jù)包目錄 解決的問(wèn)題 總體架構(gòu) 前端連接管理 路由模塊 SQL執(zhí)行模塊 后端連接管理 負(fù)載均衡 權(quán)限控制2022-2-25前端連接管理客戶端FrontendConnectionManager連接請(qǐng)求acceptFrontendConnection握手報(bào)文發(fā)送握手報(bào)文構(gòu)造握手報(bào)文認(rèn)證信息校驗(yàn)認(rèn)證
3、響應(yīng)報(bào)文響應(yīng)報(bào)文1. 跟客戶端建立連接2. 進(jìn)行權(quán)限認(rèn)證3. 前端連接的創(chuàng)建及銷毀協(xié)議解析模塊MySQLMessage 封裝了Mysql協(xié)議包的操作 方便對(duì)TCP的數(shù)據(jù)進(jìn)行Mysql協(xié)議解析3byte1byten bytes消息長(zhǎng)度報(bào)文數(shù)據(jù)序號(hào)消息頭消息體1byten byte命令參數(shù)mysql報(bào)文請(qǐng)求消息體協(xié)議解析模塊3byte1byten bytes3byte1byten bytes3byte1byten bytes3byte1byten bytes3byte1byten bytesResult Set HeaderFieldEOFRow DataEOFResultSetHeaderPac
4、ket, FieldPacket,EOFPacket,RowDataPacketMysql響應(yīng)報(bào)文目錄 解決的問(wèn)題 總體架構(gòu) 前端連接管理 路由模塊 SQL執(zhí)行模塊 后端連接管理 負(fù)載均衡 權(quán)限控制2022-2-25路由模塊 SQL解析 DruidParse 分庫(kù)標(biāo)示 路由規(guī)則 路由函數(shù) 讀寫分離特殊路由 事務(wù) 強(qiáng)制讀主庫(kù) 無(wú)分庫(kù)標(biāo)示 qmq路由SQL解析 獲取分庫(kù)標(biāo)示,定位分片 參數(shù) 1分片 2分片 解析語(yǔ)句,定位主從 SelectStatement 從庫(kù) UpdateStatement,DeleteStatement,InsertStatement 主庫(kù)2022-2-25路由配置2022-
5、2-25select now()數(shù)據(jù)庫(kù)節(jié)點(diǎn)對(duì)應(yīng)的dn0, dn1路由配置 每個(gè)表都會(huì)配置分庫(kù)規(guī)則 每條規(guī)則對(duì)應(yīng)一個(gè)路由函數(shù)oidafterOneDayByOidyyyy-MM-dd2015-09-24180路由模塊 路由函數(shù)路由算法 RuleAlgorithmRuleAlgorithmAbstractPartitionAlgorithmPartitionByOIDAfterDayPartitionByDateAfterDay路由模塊Sql語(yǔ)句DruidParserRouterWriteReadupdateselectselect * from table where id=1update ta
6、ble set status =2 where id=1SelectStatementselect * from table where id=1UpdateStatementupdate table set status =2 where id=1讀寫分離 事務(wù) begin transaction select sql update sql insert sql commit transaction( rollback transaction) 直接路由到Write庫(kù),直到事務(wù)提交/回滾 強(qiáng)制讀主庫(kù) /*balance*/方式 ReadMaster注解特殊路由2022-2-2519 無(wú)分庫(kù)標(biāo)
7、示 select語(yǔ)句,會(huì)查詢所有的庫(kù)表,將數(shù)據(jù)匯總后,返回給客戶端 insert語(yǔ)句,直接報(bào)錯(cuò) update語(yǔ)句,會(huì)更新所有庫(kù)表的數(shù)據(jù) delete語(yǔ)句,會(huì)刪除所有的庫(kù)表的數(shù)據(jù) qmq_msg_queue的路由 參照同一事務(wù)內(nèi)其他sql的路由 如果沒(méi)有其他sql,則執(zhí)行默認(rèn)的路由特殊路由2022-2-2520目錄 解決的問(wèn)題 總體架構(gòu) 前端連接管理 路由模塊 SQL執(zhí)行模塊 后端連接管理 負(fù)載均衡 權(quán)限控制2022-2-25SQL執(zhí)行模塊ResponseHandlerSingleNodeHandlerMultiNodeHandlerCommitNodeHandlerRollbackHandle
8、rSingleNodeHandler.execute() 路由到一個(gè)分片時(shí)被執(zhí)行執(zhí)行MultiNoderHandlerNodeHandler.execute() 路由到多分片時(shí)被執(zhí)行執(zhí)行CommitNodeHmit() 提交事務(wù)執(zhí)行CommitNodeHandler.rollback() 回滾事務(wù)執(zhí)行SQL執(zhí)行模塊 NonBlockSession: 一個(gè)連接的會(huì)話,綁定前端連接跟后端連接 無(wú)事務(wù):每個(gè)sql在不同連接執(zhí)行 有事務(wù):所有sql在同一個(gè)連接上執(zhí)行 SQL執(zhí)行模塊NonBlockingSessioncon1con2con3Sql1, sql2, sql3sql1sql2sql3Non
9、BlockingSessioncon1sql1, sql2, sql3,commitSql1,sql2, sql3commitrelease con1release con1release con2release con3無(wú)事務(wù)有事務(wù)前端連接后端連接SQL執(zhí)行過(guò)程客戶端connectionSql請(qǐng)求路由Mysql報(bào)文postgresqlSQL執(zhí)行器Sql語(yǔ)句報(bào)文轉(zhuǎn)換執(zhí)行結(jié)果Mysql響應(yīng)報(bào)文執(zhí)行結(jié)果Sql解析mysql目錄 解決的問(wèn)題 總體架構(gòu) 前端連接管理 路由模塊 SQL執(zhí)行模塊 后端連接管理 負(fù)載均衡 權(quán)限控制2022-2-25后端連接管理模塊 管理后端數(shù)據(jù)庫(kù)連接 創(chuàng)建新的數(shù)據(jù)庫(kù)連接 回
10、收連接 分片主從管理 控制讀寫分離后端連接管理 管理后端真實(shí)數(shù)據(jù)庫(kù)的連接DBBackendConnctionMangerSql執(zhí)行請(qǐng)求Connection執(zhí)行結(jié)果目錄 解決的問(wèn)題 總體架構(gòu) 前端連接管理 路由模塊 SQL執(zhí)行模塊 后端連接管理 負(fù)載均衡 權(quán)限控制2022-2-25負(fù)載均衡 注冊(cè)發(fā)現(xiàn)使用zookeeper實(shí)現(xiàn),dbproxy啟動(dòng)的時(shí)候在zookeeper上注冊(cè)服務(wù)地址,客戶端監(jiān)聽(tīng)對(duì)應(yīng)節(jié)點(diǎn)的信息,如果有服務(wù)上線,或者下線,動(dòng)態(tài)的獲得dbproxy的服務(wù)列表,然后動(dòng)態(tài)生成數(shù)據(jù)源,供客戶端使用。zookeeperdbproxydbproxydbproxyregisterclientda
11、tasourcedynamicDataSourcesubscribecreateinjection負(fù)載均衡 負(fù)載均衡,是使用了spring的動(dòng)態(tài)數(shù)據(jù)源AbstractRoutingDataSource,擴(kuò)展了該數(shù)據(jù)源,從動(dòng)態(tài)數(shù)據(jù)源中根據(jù)一定的負(fù)載均衡策略,選出一個(gè)可以使用的數(shù)據(jù)源。(1). 隨機(jī)策略 :隨機(jī)選一個(gè)可用的數(shù)據(jù)源。 com.qunar.des.dbproxy.datasource.balance.RandomStrategy (2). 輪詢策略 :從可用的數(shù)據(jù)源中,按照順序輪詢。com.qunar.des.dbproxy.datasource.balance.RoundRobinW
12、eightStrategy 可以通過(guò)實(shí)現(xiàn)BalanceStrategy.getNext實(shí)現(xiàn)不同的負(fù)載均衡策略。Dbproxy分組 通過(guò)為dbproxy配置不同的組,可以靈活的組裝不同的dbproxy為一個(gè)集群dbproxydbproxydbproxydbproxydbproxydbproxydbproxydbproxydbproxydes.dbproxy.orderdes.dbproxy.voucherdes.dbproxy.task目錄 解決的問(wèn)題 總體架構(gòu) 前端連接管理 路由模塊 SQL執(zhí)行模塊 后端連接管理 負(fù)載均衡 權(quán)限控制2022-2-25權(quán)限控制 基于appcode進(jìn)行權(quán)限控制 新增應(yīng)用Qconfig動(dòng)態(tài)增加appcode 增加新機(jī)器就已經(jīng)有權(quán)限了2022-2-25 監(jiān)控報(bào)警 慢查詢監(jiān)控 連接數(shù)監(jiān)控
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)慶升旗講話稿范文(5篇)
- 信息素在性別識(shí)別中的作用-洞察分析
- 藥物支架在肝癌治療中的作用-洞察分析
- 疫苗接種倫理與法規(guī)探討-洞察分析
- 油氣行業(yè)智能化升級(jí)-洞察分析
- 云平臺(tái)互操作性研究-洞察分析
- 污染土壤生物修復(fù)技術(shù)-洞察分析
- 鄉(xiāng)村文化景觀旅游開發(fā)-洞察分析
- 宇宙射線多信使天文學(xué)-洞察分析
- 網(wǎng)絡(luò)謠言傳播機(jī)制研究-洞察分析
- 廣東省佛山市南海區(qū)·三水區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 減肥及代謝手術(shù)課件
- 2025年中國(guó)社區(qū)團(tuán)購(gòu)行業(yè)發(fā)展環(huán)境、運(yùn)行態(tài)勢(shì)及投資前景分析報(bào)告(智研咨詢發(fā)布)
- 24秋二年級(jí)上冊(cè)語(yǔ)文期末復(fù)習(xí)21天沖刺計(jì)劃(每日5道題)
- 2024年度健康醫(yī)療服務(wù)合同平安好醫(yī)生(2024版)3篇
- 《中國(guó)傳統(tǒng)民居建筑》課件
- JJF 2163-2024漆膜劃格器校準(zhǔn)規(guī)范
- 肺炎支原體肺炎-4
- 【教案】Unit4+Section+B+(1a-2b)+教學(xué)設(shè)計(jì)人教版(2024)七年級(jí)英語(yǔ)上冊(cè)++
- 好作文的開頭和結(jié)尾公開課獲獎(jiǎng)?wù)n件省賽課一等獎(jiǎng)?wù)n件
- 替莫唑胺在小細(xì)胞肺癌中的應(yīng)用
評(píng)論
0/150
提交評(píng)論