MySQL數據庫讀寫分離、讀負載均衡方案選擇


MySQL數據庫讀寫分離、讀負載均衡方案選擇

一、MySQL Cluster外鍵所關聯的記錄在別的分片節點中性能很差
對需要進行分片的表需要修改引擎Innodb為NDB
因此MySQL Cluster不適合存在大量外鍵約束,引擎為Innodb的數據庫

二、Galera Cluster多個服務能同時被讀寫,無延遲復制,不會產生數據丟失熱備用。
支持InnoDB引擎對應用程序透明:應用程序不需作修改。
新增服務器時,不需手工復制數據庫到新的節點。
應用案例超過2000多家外國企業使用。
Galera Cluster for MySQL | The world's most advanced open source database cluster
http://galeracluster.com/
MariaDB Galera Cluster集群優缺點_mailrun_新浪博客
http://blog.sina.com.cn/s/blog_548c8a830102vrgw.html
CentOS 6下安裝部署Galera Cluster for MySQL集群_數據庫技術_Linux公社-Linux系統門戶網站
http://www.linuxidc.com/Linux/2014-09/106679.htm


三、建議采用360開源的高可用DB代理層Atlas+Keepalived實現MySQL讀寫分離、讀負載均衡。
采用Atlas+Keepalived實現MySQL讀寫分離、讀負載均衡 - 人生理想在於堅持不懈 - 51CTO技術博客
http://sofar.blog.51cto.com/353572/1601552/

Atlas+Keepalived實現MySQL讀寫分離
主要有以下優點:
(1)、基於mysql-proxy-0.8.2進行修改,代碼完全開源;
(2)、比較輕量級,部署配置也比較簡單;
(3)、支持DB讀寫分離;
(4)、支持從DB讀負載均衡,並自動剔除故障從DB;
(5)、支持平滑上下線DB;
(6)、具備較好的安全機制(IP過濾、賬號認證);
(7)、版本更新、問題跟進、交流圈子都比較活躍。

官方開源介紹:
https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md
一、簡介
Atlas是由 Qihoo 360公司Web平台部基礎架構團隊開發維護的一個基於MySQL協議的數據中間層項目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎上,修改了大量bug,添加了很多功能特性。目前該項目在360公司內部得到了廣泛應用,很多MySQL業務已經接入了Atlas平台,每天承載的讀寫請求數達幾十億條。同時,有超過50家公司在生產環境中部署了Atlas,超過800人已加入了我們的開發者交流群,並且這些數字還在不斷增加。
主要功能:
1.讀寫分離
2.從庫負載均衡
3.IP過濾
4.自動分表
5.DBA可平滑上下線DB
6.自動摘除宕機的DB
二、Atlas相對於官方MySQL-Proxy的優勢
1.將主流程中所有Lua代碼用C重寫,Lua僅用於管理接口
2.重寫網絡模型、線程模型
3.實現了真正意義上的連接池
4.優化了鎖機制,性能提高數十倍
Atlas的架構 · Qihoo360/Atlas Wiki · GitHub
https://github.com/Qihoo360/Atlas/wiki/Atlas%E7%9A%84%E6%9E%B6%E6%9E%84
Atlas是一個位於應用程序與MySQL之間中間件。在后端DB看來,Atlas相當於連接它的客戶端,在前端應用看來,Atlas相當於一個DB。Atlas作為服務端與應用程序通訊,它實現了MySQL的客戶端和服務端協議,同時作為客戶端與MySQL通訊。它對應用程序屏蔽了DB的細節,同時為了降低MySQL負擔,它還維護了連接池。

 附上一張上面51CTO技術博客的架構圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM