您好,登錄后才能下訂單哦!
Amoeba簡介
Amoeba(變形蟲)項目,該開源框架于2008年 開始發(fā)布一款 Amoeba for Mysql軟件。這個軟件致力于MySQL的分布式數(shù)據(jù)庫前端代理層,它主要在應(yīng)用層訪問MySQL的 時候充當(dāng)SQL路由功能,專注于分布式數(shù)據(jù)庫代理層(Database Proxy)開發(fā)。座落與 Client、DB Server(s)之間,對客戶端透明。具有負載均衡、高可用性、SQL 過濾、讀寫分離、可路由相關(guān)的到目標(biāo)數(shù)據(jù)庫、可并發(fā)請求多臺數(shù)據(jù)庫合并結(jié)果。 通過Amoeba能夠完成多數(shù)據(jù)源的高可用、負載均衡、數(shù)據(jù)切片的功能,目前Amoeba已在很多企業(yè)的生產(chǎn)線上面使用。
讀寫分離原理圖
實驗環(huán)境
相關(guān)軟件包鏈接:https://pan.baidu.com/s/1TANw0pEGgnxgEfGNU9hsGQ 密碼:0s4h
實驗?zāi)繕?biāo):
成功搭建mysql讀寫分離
實驗步驟
一、先搭建主從復(fù)制,可參考https://blog.51cto.com/13760351/2173559
二、配置amoeba服務(wù)
1.關(guān)閉防火墻,安全性
setenforce 0
systemctl start firewalld.service
2.在主機amoeba上安裝java環(huán)境
cp jdk-6u14-linux-x64.bin /usr/local/ #將jdk軟件包復(fù)制到Linux系統(tǒng)中
cd /usr/local
chmod +x jdk-6u14-linux-x64.bin #賦予執(zhí)行權(quán)限
./jdk-6u14-linux-x64.bin #執(zhí)行jdk,輸入yes,然后按enter
mv jdk1.6.0_14/ /usr/local/jdk1.6 #將jdk軟件移動到此目錄下
3.配置系統(tǒng)環(huán)境變量
vim /etc/profile #配置系統(tǒng)環(huán)境變量
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin
source /etc/profile #刷新,使系統(tǒng)環(huán)境變量生效
4.安裝并配置amoeba軟件
mkdir /usr/local/amoeba
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
chmod -R 755 /usr/local/amoeba/ #賦予權(quán)限
/usr/local/amoeba/bin/amoeba #啟動amoeba
5.配置amoeba讀寫分離
(1)在master,slave1,slave2上添加權(quán)限開放給amoeba訪問grant all on *.* to test@'192.168.65.%' identified by '123.com';
(2)編輯amoeba.xml配置文件
cd /usr/local/amoeba #回到amoeba服務(wù)器
vim conf/amoeba.xml
(3)編輯dbServers.xml 配置文件vim conf/dbServers.xml
(4)啟動amoeba軟件
/usr/local/amoeba/bin/amoeba start&
netstat -anpt | grep java
三.測試客戶端
yum install -y mysql
2.通過代理訪問mysqlmysql -u amoeba -p123456 -h 192.168.65.162 -P8066
3.在MASTER上創(chuàng)建一個表
mysql -u root -p
mysql> use hhhh;
Mysql> create table zz (id int(10),name varchar(10),address varchar(20))
4.在主服務(wù)器上插入數(shù)據(jù)insert into zz values('1','zhang','this_is_master');
5.在從服務(wù)器1上插入數(shù)據(jù)insert into zz values('2','zhang','this_is_slave1');
6.在從服務(wù)器2上插入數(shù)據(jù)insert into zz values('3','zhang','this_is_slave2');
7.在客戶端上測試
8.在客戶端插入數(shù)據(jù)
insert into zz values('5','zhang','write_test');
插入的語句在客戶端查詢不到,只有在master上看到,證明寫操作在master服務(wù)器上面
9.在master服務(wù)器查看
由此驗證,在通過客戶端連接數(shù)據(jù)庫后寫入的數(shù)據(jù)都在master,然后同步給slave1,slave2上,所有讀操作都分?jǐn)偨o了slave從服務(wù)器,用來分擔(dān)數(shù)據(jù)庫壓力。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。