MySQL-通过MaxScale实现读写分离初探
文章目錄
- 生猛干貨
- 官方文檔
- 主從復制配置的目的之一----讀寫分離
- 為什么要進行讀寫分離
- 讀寫分離的實現方式
- 程序開發
- 中間件maxScale 實現讀寫分離
- 使用中間件實現讀寫分離的優缺點
- MaxScale
- 最終的架構
- MaxScale Core介紹
- 安裝部署
- 搞定MySQL
生猛干貨
帶你搞定MySQL實戰,輕松對應海量業務處理及高并發需求,從容應對大場面試
官方文檔
https://dev.mysql.com/doc/
如果英文不好的話,可以參考 searchdoc 翻譯的中文版本
http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html
主從復制配置的目的之一----讀寫分離
我們進行主從復制配置的一個主要目的就是 分擔 主庫的 讀壓力,將讀的請求都轉移到 從節點上。
為什么要進行讀寫分離
那么為什么要進行讀寫分離呢? 我們知道基本上80%的操作都是讀請求 ------> 寫操作的壓力是無法分擔的,而且只能在主節點上操作。 而讀操作呢 就可以在主節點上 也可以在從節點上,所以為了減少主節點的DB壓力,將讀請求轉移到一個或者多個從節點上。
讀寫分離的實現方式
基本上有兩種方式
- 大部分都用過,配置動態數據源 。 程序直連DB,性能損耗較少 ,方便維護。要說缺點的話無非就是要開發 。 比較簡單,我們這里不討論該方案。
- 依靠中間件
程序開發
aop 動態數據源,這里不探討這個方案,實現起來也比較簡單。
中間件maxScale 實現讀寫分離
主流的兩個 : mysql-proxy (未正式發布,性能和穩定性有點問題,不建議) 和 maxScale .
maxScale 是 MariaDB(MySQL的分支版本) 提供的中間件。
maxScale 不僅能提供讀寫分離,而且能實現讀請求的負載均衡 。
使用中間件實現讀寫分離的優缺點
優點:
- 由中間件根據查詢語法分析,自動完成讀寫分離。 但存過這種,識別不出來,會在主節點執行
- 對應用透明,無需修改程序
缺點:
- 大并發高負載的情況下,由于增加了中間層,對查詢有損耗。 (QPS 50%-70%的降低)
- 對于延遲敏感的業務無法自主在主庫執行
讀寫分離: 要解決的是如何在復制集群的不同角色上,去執行不同的SQL
讀的負載均衡: 要解決的是具有相同角色的數據庫,如何共同分擔相同的負載。
如何實現讀的負載均衡 : 軟件 :LVS 、 Haproxy、MaxScale 等 , 硬件: F5 等
MaxScale
最終的架構
我們先看下我們再次將要完成的方案的架構
MySQL ---- > MaxScale -----> MHA集群
MaxScale Core介紹
- Authentication 認證插件 : 緩存用戶信息
- Protocal協議插件
- Router 路由插件 (readconnroute 負責多臺服務器負載均衡 、readwritesplit 負責讀寫分離) – 比較重要
- Monitor 監控插件
- Filter & Logging 日志和過濾插件
安裝部署
請移步 https://pan.baidu.com/s/1SVnUHzqr-KyyYRl5fRbkqg
搞定MySQL
總結
以上是生活随笔為你收集整理的MySQL-通过MaxScale实现读写分离初探的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL-高可用架构探索
- 下一篇: MySQL-Btree索引和Hash索引