您好,登錄后才能下訂單哦!
本篇內容主要講解“mysql router是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“mysql router是什么”吧!
什么是MySQL Router?
MySQL Router是一個介于應用層和DB層之間的開源的輕量級中間件,它能夠將前端應用的請求分析轉發(fā)給后端DB服務器處理,從而實現(xiàn)DB的負載均衡,可以說它是先前MySQL Proxy的替代品,我們可以在Github找到它的源碼。類似的工具有360的Atlas、美團點評的DBProxy、MyCat等幾種。
MySQL Router架構
使用這種架構,前端應用不用直接連接DB Server,而僅僅是連接到MySQL Router,能夠很方便地實現(xiàn)數(shù)據(jù)庫集群的擴展,接下來我們再來看看它的一些其他的主要功能。
MySQL Router主要功能
1、自動故障轉移
使用MySQL Router實現(xiàn)來讀寫分離,前端應用層不需要直連接底層DB,而是統(tǒng)一連接到MySQL Router。MySQL Router對前端應用層是透明的,我們不需要在代碼層做任何處理。應用層會把MySQL Router一個正常的MySQL實例使用,底層DB Master掛了會自動使用Backup節(jié)點替代,十分方便。
2、DB負載均衡
MySQL中間件通過類似連接池的方式,將請求按照一定的規(guī)則分發(fā)給底層數(shù)據(jù)庫,從而實現(xiàn)DB的讀寫分離、高可用。
MySQL Router用于取代MySQL Proxy,建議MySQL Router與應用程序部署在一臺機器。應用程序像訪問MySQL一樣訪問MySQL Proxy,由MySQL Proxy將數(shù)據(jù)轉發(fā)給后端的MySQL。支持各種操作系統(tǒng)。
MySQL Router的工作模式
read-write
用于多主服務器,個人感覺也可用于主備,用于多主可以避免腦裂問題,但實際上多主只有一個為Active狀態(tài)。并且MySQL的主從和多主復制恢復起來都比較麻煩,需要手工操作。相比之下MySQL Group Replication提供了更簡單的集群自動維護方案。
所有請求被發(fā)送到第一個服務器,只在第一個服務器宕機后才會使用后續(xù)的第二個服務器。
不支持宕機服務器恢復檢測
以下兩種情況下將無法使用
從先宕機,然后恢復,主再宕機
主先宕機,然后恢復,從再宕機
[routing:example_strategy]
bind_port = 7001
destinations = master1.example.com,master2.example.com,master3.example.com
mode = read-writ
read-only
用于路由從服務器集群。
每個請求用輪詢方式訪問所有服務器。如果一個服務器宕機,會嘗試使用下一個服務器。如果所有服務器宕機,路由將退出。重新可用的服務器會被按照原來的順序重新加入到可用列表
[routing:ro_route]
bind_port = 7002
destinations = slave1.example.com,slave2.example.com,slave3.example.com
mode = read-only
啟動
mysqlrouter --config=/path/to/file/my_router.ini
需要將數(shù)據(jù)庫連接池的maxStatements=0設置為0,否則當主機宕機后,連接池將無法在備機上找到對應的Statement而報錯。
性能
遠高于MySQL Proxy,相比較于直連MySQL性能損失很小。
到此,相信大家對“mysql router是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。