數據庫學習之十四:讀寫分離 Atlas架構

十4、讀寫分離 Atlas架構

一、安裝軟件

rpm -ivh Atlas-2.2.1.el6.x86_64.rpm

二、修改配置

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: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

/usr/local/mysql-proxy/bin/encrypt  123      ---->製做加密密碼

三、啓動atlasmysql

/usr/local/mysql-proxy/bin/mysql-proxyd test start
ps -ef |grep proxy

四、測試sql

測試讀寫分離:

讀的測試
mysql -uroot -p123 -h10.0.0.53 -P33060 
show variables like 'server_id';

寫操做測試:

設置兩個從節點只讀
set global read_only=1;

鏈接測試

mysql -umha -pmha -h10.0.0.53 -P33060
create database db1;

五、管理atlasvim

鏈接管理接口:
mysql -uuser -ppwd -h127.0.0.1 -P2345
打印幫助:
mysql> select * from help;查看幫助命令
select * from backends;查看讀寫節點
動態添加刪除節點:
REMOVE BACKEND 3;
ADD SLAVE 10.0.0.53:3306;
SAVE CONFIG;(配置文件中自動去除已經被刪除的或者添加該節點)

六、擴展——atlas 自動分表架構

school.stu    1000w
id   name 

stu_0   stu_1   stu_2   stu_3    stu_4

以上分表方式,存數據很是均勻,取數據不均與,由於要考慮業務需求
若是業務查詢熱點數據集中在id是1-200w這些數據,那麼讀取就不均勻
取模分表

n/5  取餘數  (0,1,2,3,4) 
(1)若是是  0  則分到 stu_0
(2)若是是  1  則分到 stu_1
(3)若是是  2  則分到 stu_2
(4)若是是  3  則分到 stu_3
(5)若是是  4  則分到 stu_4

取餘數
配置文件
vim /usr/local/mysql-proxy/conf/test.cnf
tables = school.stu.id.5

重啓atlas
(主庫)手工建立,分表後的庫和表,分別爲定義的school  和 stu_0 stu_1 stu_2 stu_3 stu_4
create database school;
use school
create table stu_0 (id int,name varchar(20));
create table stu_1 (id int,name varchar(20));
create table stu_2 (id int,name varchar(20));
create table stu_3 (id int,name varchar(20));
create table stu_4 (id int,name varchar(20));

測試:

insert into stu values (3,'wang5');

insert into stu values (2,'li4');

insert into stu values (1,'zhang3');

insert into stu values (4,'m6');

insert into stu values (5,'zou7');

commit;

select * from stu_01 

或者 select * from stu where id=01
相關文章
相關標籤/搜索