Oldguo-標(biāo)桿班級(jí)-MySQL-lesson11--讀寫分離架構(gòu)-Atlas

如果您對(duì)數(shù)據(jù)庫感興趣,可以添加 DBA解決方案QQ群:895979329

1. Atlas介紹

image.png

image.png
 Atlas是由 Qihoo 360, Web平臺(tái)部基礎(chǔ)架構(gòu)團(tuán)隊(duì)開發(fā)維護(hù)的一個(gè)基于MySQL協(xié)議的數(shù)據(jù)中間層項(xiàng)目。
它是在mysql-proxy 0.8.2版本的基礎(chǔ)上,對(duì)其進(jìn)行了優(yōu)化,增加了一些新的功能特性。
360內(nèi)部使用Atlas運(yùn)行的mysql業(yè)務(wù),每天承載的讀寫請(qǐng)求數(shù)達(dá)幾十億條。
下載地址
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以上

2.安裝配置

yum install -y Atlas*
cd /usr/local/mysql-proxy/conf
mv test.cnf test.cnf.bak
 vi 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.53:3306
pwds = repl:3yb5jEku5h4=,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
啟動(dòng)atlas
/usr/local/mysql-proxy/bin/mysql-proxyd test start
ps -ef |grep proxy

3. Atlas功能測(cè)試

測(cè)試讀操作:
mysql -umha -pmha  -h 10.0.0.53 -P 33060 
db03 [(none)]>select @@server_id;
測(cè)試寫操作:
mysql> begin;select @@server_id;commit;

4. 生產(chǎn)用戶要求

開發(fā)人員申請(qǐng)一個(gè)應(yīng)用用戶 app(  select  update  insert)  密碼123456,要通過10網(wǎng)段登錄
1. 在主庫中,創(chuàng)建用戶
grant select ,update,insert on *.* to app@'10.0.0.%' identified by '123456';
2. 在atlas中添加生產(chǎn)用戶
/usr/local/mysql-proxy/bin/encrypt  123456      ---->制作加密密碼
vim test.cnf
pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=,app:/iZxz+0GRoA=
/usr/local/mysql-proxy/bin/mysql-proxyd test restart
[root@db03 conf]# mysql -uapp -p123456  -h 10.0.0.53 -P 33060

5. Atlas基本管理

連接管理接口

mysql -uuser -ppwd -h127.0.0.1 -P2345

打印幫助:

mysql> select * from help;

查詢后端所有節(jié)點(diǎn)信息:

mysql>  SELECT * FROM backends    ;
+-------------+----------------+-------+------+
| backend_ndx | address        | state | type |
+-------------+----------------+-------+------+
|           1 | 10.0.0.55:3306 | up    | rw   |
|           2 | 10.0.0.51:3306 | up    | ro   |
|           3 | 10.0.0.53:3306 | up    | ro   |
+-------------+----------------+-------+------+
3 rows in set (0.00 sec)

動(dòng)態(tài)添加刪除節(jié)點(diǎn)

REMOVE BACKEND 3;

動(dòng)態(tài)添加節(jié)點(diǎn)

ADD SLAVE 10.0.0.53:3306;

保存配置到配置文件

SAVE CONFIG;

6. 自動(dòng)分表

介紹

使用Atlas的分表功能時(shí),首先需要在配置文件test.cnf設(shè)置tables參數(shù)。
tables參數(shù)設(shè)置格式:數(shù)據(jù)庫名.表名.分表字段.子表數(shù)量,
比如:
你的數(shù)據(jù)庫名叫school,表名叫stu,分表字段叫id,總共分為2張表,那么就寫為school.stu.id.2,如果還有其他的分表,以逗號(hào)分隔即可。

7. 關(guān)于讀寫分離建議

MySQL-Router    ---> MySQL官方
ProxySQL         --->Percona
Maxscale         ---> MariaDB
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,355評(píng)論 0 5
  • 介紹 Atlas 是由 Qihoo 360公司W(wǎng)eb平臺(tái)部基礎(chǔ)架構(gòu)團(tuán)隊(duì)開發(fā)維護(hù)的一個(gè)基于MySQL協(xié)議的數(shù)據(jù)中間層...
    九都散人閱讀 13,143評(píng)論 4 16
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,666評(píng)論 1 32
  • 本文引自:http://www.361way.com/atlas-mysql/5310.html,根據(jù)踩過的坑,在...
    一寸陽光_018閱讀 460評(píng)論 0 3
  • 今天的太陽偶爾露了一下頭,便隱去了光芒,天氣又開始變得陰冷陰冷。不過曇花一現(xiàn)也比沒有強(qiáng)。光芒乍現(xiàn)還是讓人看到希望。...
    風(fēng)兒微雨閱讀 51評(píng)論 0 1

友情鏈接更多精彩內(nèi)容