該Atlas方案的實(shí)現(xiàn)需要基于MHA架構(gòu)
(而MHA架構(gòu)需要 實(shí)現(xiàn)MySQL主從復(fù)制且開啟GTID特性)
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站與策劃設(shè)計(jì),港口網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:港口等地區(qū)。港口做網(wǎng)站價(jià)格咨詢:13518219792
常見方案介紹:
Mysql-proxy(oracle)
Mysql-router(oracle)
Atlas (Qihoo 360)
Atlas-sharding (Qihoo 360)
Cobar(是阿里巴巴(B2B)部門開發(fā))
Mycat(基于阿里開源的Cobar產(chǎn)品而研發(fā))
TDDL Smart Client的方式(淘寶)
DRDS 阿里云的產(chǎn)品
Oceanus(58同城數(shù)據(jù)庫中間件)
OneProxy(原支付寶首席架構(gòu)師樓方鑫開發(fā) )
vitess(谷歌開發(fā)的數(shù)據(jù)庫中間件)
Heisenberg(百度)
TSharding(蘑菇街白輝)
Xx-dbproxy(金山的Kingshard、當(dāng)當(dāng)網(wǎng)的sharding-jdbc )
amoeba
Atlas是由 Qihoo 360公司W(wǎng)eb平臺(tái)部基礎(chǔ)架構(gòu)團(tuán)隊(duì)開發(fā)維護(hù)的一個(gè)基于MySQL協(xié)議的數(shù)據(jù)中間層項(xiàng)目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基礎(chǔ)上,修改了大量bug,添加了很多功能特性。目前該項(xiàng)目在360公司內(nèi)部得到了廣泛應(yīng)用,很多MySQL業(yè)務(wù)已經(jīng)接入了Atlas平臺(tái),每天承載的讀寫請(qǐng)求數(shù)達(dá)幾十億條。
源碼 Github:?https://github.com/Qihoo360/Atlas
Atlas主要功能
讀寫分離
從庫負(fù)載均衡
自動(dòng)分表
IP過濾
SQL語句黑白名單
DBA可平滑上下線DB
自動(dòng)摘除宕機(jī)的DB
Atlas是一個(gè)位于前端應(yīng)用與后端MySQL數(shù)據(jù)庫之間的中間件,它使得應(yīng)用程序員無需再關(guān)心讀寫分離、分表等與MySQL相關(guān)的細(xì)節(jié),可以專注于編寫業(yè)務(wù)邏輯,同時(shí)使得DBA的運(yùn)維工作對(duì)前端應(yīng)用透明,上下線DB前端應(yīng)用無感知。
下載地址:https://github.com/Qihoo360/Atlas/releases
注意:
1、Atlas只能安裝運(yùn)行在64位的系統(tǒng)上
2、Centos 5.X安裝 Atlas-XX.el5.x86_64.rpm,Centos 6.X安裝Atlas-XX.el6.x86_64.rpm。
3、后端mysql版本應(yīng)大于5.1,建議使用Mysql 5.6以上
1、安裝軟件rpm -ivh Atlas-2.2.1.el6.x86_64.rpm
2、修改配置
cd /usr/local/mysql-proxy/
vim /usr/local/mysql-proxy/conf/test.cnf
[mysql-proxy]
admin-username = user
admin-password = pwd
proxy-backend-addresses = 10.0.0.55:3306
proxy-read-only-backend-addresses = 10.0.0.51:3306,10.0.0.52:3306
pwds = repl:3yb5jEku5h5=,mha:O2jBXONX098=
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
sql-log=ON
proxy-address = 0.0.0.0:33060
admin-address = 0.0.0.0:2345
charset=utf8
/usr/local/mysql-proxy/bin/encrypt 123 ---->制作加密密碼
3、啟動(dòng)atlas
/usr/local/mysql-proxy/bin/mysql-proxyd test start
ps -ef |grep proxy
功能使用
測(cè)試讀寫分離:
讀的測(cè)試
mysql -uroot -p123 -h20.0.0.53 -P33060
show variables like 'server_id';
寫操作測(cè)試:
設(shè)置兩個(gè)從節(jié)點(diǎn)只讀
set global read_only=1;
連接測(cè)試
mysql -umha -pmha -h20.0.0.53 -P33060
create database db1;
連接管理接口:
mysql -uuser -ppwd -h227.0.0.1 -P2345
打印幫助:
mysql> select * from help;
動(dòng)態(tài)添加刪除節(jié)點(diǎn):
REMOVE BACKEND 3;
ADD SLAVE 10.0.0.10:3308;
SAVE CONFIG;
測(cè)試讀寫分離:
mysql -uuser -ppwd -h227.0.0.1 –P33060
show variables like "server_id";