原文: http://www.enmotech.com/web/detail/1/714/1.html ( 復(fù)制鏈接,打開瀏覽器即可查看原文 )
墨墨導(dǎo)讀:ProxySQL是一個(gè)高性能的MySQL中間件,擁有強(qiáng)大的規(guī)則引擎。
ProxySQL提供強(qiáng)大的路由規(guī)則。當(dāng)應(yīng)用程序自身不支持讀寫分離時(shí),DBA可以通過配置路由規(guī)則為應(yīng)用程序提供透明的讀寫分離,使用Keepalived + ProxySQL + Orchestrator為主從提供高可用時(shí),能夠有效的避免keepalived + 雙主結(jié)構(gòu) 由于keepalived腦裂而造成數(shù)據(jù)被寫錯(cuò)亂的痛點(diǎn)。
介紹
ProxySQL是一個(gè)高性能的MySQL中間件,擁有強(qiáng)大的規(guī)則引擎。具有以下特性:
1.為對(duì)多個(gè)數(shù)據(jù)庫的應(yīng)用程序請(qǐng)求提供“智能”的負(fù)載均衡。
2.實(shí)現(xiàn)了MySQL請(qǐng)求協(xié)議,能夠?qū)?yīng)用程序提供透明的讀寫分離,避免了應(yīng)用程序?qū)崿F(xiàn)復(fù)雜的讀寫分離。
3.能夠自動(dòng)感知數(shù)據(jù)庫健康狀態(tài)和拓?fù)浣Y(jié)構(gòu)并且能夠自動(dòng)將應(yīng)用程序請(qǐng)求路由到處于健康狀態(tài)的MySQL實(shí)例。
4.保護(hù)應(yīng)用程序不受底層數(shù)據(jù)庫復(fù)雜拓?fù)浣Y(jié)構(gòu)變化而受影響,能夠自動(dòng)將寫請(qǐng)求轉(zhuǎn)發(fā)的主庫,自動(dòng)按照權(quán)重將讀請(qǐng)求發(fā)送的主庫和從庫。
5.提供了對(duì)查詢SQL的監(jiān)控分析統(tǒng)計(jì)。
6.為管理員提供了強(qiáng)大的控制機(jī)制,可以在代理層緩存查詢,以便更快地響應(yīng)查詢、重新路由查詢,甚至重新改寫那些質(zhì)量較差的查詢語句。
模塊
ProxySQL組成模塊
Qurey Processor 用于匹配查詢規(guī)則并根據(jù)規(guī)則決定是否緩存查詢或者將查詢加入黑名單或者重新路由、重寫查詢或者鏡像查詢到其他hostgroup。
User Auth 為底層后端數(shù)據(jù)庫認(rèn)證提供了用戶憑證。
Hostgroup manager – 負(fù)責(zé)管理發(fā)送SQL請(qǐng)求都后端數(shù)據(jù)庫并跟蹤SQL請(qǐng)求狀態(tài)。
Connection pool – 負(fù)責(zé)管理后端數(shù)據(jù)庫連接,連接池中建立的連接被所有的前端應(yīng)用程序共享。
Monitoring – 負(fù)責(zé)監(jiān)控后端數(shù)據(jù)庫健康狀態(tài)主從復(fù)制延時(shí)并臨時(shí)下線不正常的數(shù)據(jù)庫實(shí)例。
安裝
1.從 https://github.com/sysown/proxysql/releases 下載相應(yīng)的版本。
2.yum localinstall proxysql-1.x.rpm
3.啟動(dòng)ProxySQL
/etc/init.d/proxysql start
配置結(jié)構(gòu)
ProxySQL配置可以存儲(chǔ)到SQLite數(shù)據(jù)庫并通過SQL語句來管理配置,并通過如下三層配置來管理ProxySQL。