MySQL中間件是MySQL數(shù)據(jù)庫管理系統(tǒng)的一種擴(kuò)展工具,通過在數(shù)據(jù)庫應(yīng)用程序和MySQL服務(wù)器之間增加一個進(jìn)程層來提供更好的可伸縮性和高可用性。現(xiàn)在市面上有多種MySQL中間件,本文將對一些常見的中間件進(jìn)行比較和分析。
MySQL Proxy
MySQL Proxy是由MySQL AB內(nèi)部開發(fā)的,可以在用戶和MySQL服務(wù)器之間攔截并操縱數(shù)據(jù)庫通信的中間件。MySQL Proxy的優(yōu)點(diǎn)是它能夠方便地運(yùn)行腳本,從而根據(jù)客戶端請求來實(shí)現(xiàn)請求的路由和負(fù)載均衡。然而,由于MySQL Proxy還處于不斷開發(fā)和完善的階段,一些問題(例如內(nèi)存泄漏)仍需要解決。
-- 基本功能,將讀寫請求均衡分布到slave上。 if (read_query_packet) then if (username=='app' and count_slaves>1) then local index = (math.random(count_slaves)) if (index == last_index_rw) then index = (index % count_slaves + 1) end last_index_rw = index proxy.queries:append(1, string.char(0x03) .. 'SHOW SLAVE STATUS', {resultset_is_needed = true, resultset_is_needed_exactly = true, dest = index}) return proxy.PROXY_SEND_QUERY end elseif (resultset_row) then result:append(resultset_row) end
MySQL Router
MySQL Router是MySQL官方提供的輕量級中間件,用于提供高可伸縮性的讀/寫負(fù)載均衡并實(shí)現(xiàn)不同數(shù)據(jù)庫拓?fù)涞淖詣勇酚?。MySQL Router的特點(diǎn)是易于安裝和使用,支持在分布式環(huán)境中進(jìn)行自動化部署和維護(hù)。但是,MySQL Router缺乏豐富的功能和靈活性。
# https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-installation-binary.html $ sudo apt-get update $ sudo apt-get install mysql-router $ mysqlrouter --bootstrap root@localhost Enter password: Would you like to use SSH for remote connections? (y/n) [n]: n Please choose a password for the MySQL shell: INFO: Creating folder /home/mysqlrouter/cache for cache files INFO: Validating configuration file [INFO] MySQL Router configuration initialized. Bootstrap successful, data written to disk.
上一篇dockercdh部署
下一篇mysql中間件序列號