Amoeba實現Mysql讀寫分離

環境規劃


Amoeba讀寫分離器172.16.254.144/16
Mysql服務器(master)172.16.254.150/16
Mysql服務器(slave)172.16.254.151/16
一、先實現mysql主從複製,在master上使用yum安裝mysql
[root@localhost mysql]# yum -y install mysql mysql-server

   啓用二進制日誌,編輯/etc/my.cnf在[mysqld]下添加如下行:

log-bin = /var/lib/mysql/mysql-bin-log
binlog_format=mixed
server_id = 1

   重啓mysqld,連接mysql,授權遠程複製賬戶

mysql> grant replication slave, replication client on *.* to 'repluser'@'172.16.%.%' identified by 'mypass';

  查看當前正在使用的二進制日誌文件及位置

wKiom1N4T2qTvFgAAAC9ZbNV220309.jpg


 在slave上啓用中繼日誌及修改server_id,編輯/etc/my.cnf在[mysqld]下添加如下行:

relay-log = /var/lib/mysql/relay-bin
server_id = 11

 連接master服務器,並啓動複製功能

mysql> change master to master_host='172.16.254.150', master_user='repluser',master_password='mypass',master_log_file='mysql-bin-log.000002',master_log_pos=106;
mysql> start slave;

 查看Slave_IO、Slave_SQL線程是否爲yes

wKiom1N4U9ST-sXEAAFDaZxtNZI113.jpg  


二、安裝配置Amoeba

   安裝配置jdk

[root@localhost ~]chmod +x ./jdk-6u31-linux-x64-rpm.bin
[root@localhost ~]./jdk-6u31-linux-x64-rpm.bin
[root@localhost ~]# vim /etc/profile.d/java.sh  添加如下行:
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
[root@localhost ~]# . /etc/profile.d/java.sh


   安裝Amoeba

[root@localhost ~]# mkdir /usr/local/amoeba
[root@localhost ~]# tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
[root@localhost ~]# cd /usr/local/amoeba/
[root@localhost ~]# bin/amoeba start

   安裝mysql客戶端,驗證是否能夠連接

[root@localhost ~]# yum -y install mysql
[root@localhost ~]# mysql -uroot -h172.16.254.144 -P8066 -p

  編輯/usr/local/amoeba/conf/amoeba.xml主配置文件

wKiom1N4a-KBKSehAAEzMmDHLbU238.jpg

wKiom1N4bEvRtdzFAAGTS-f8yzk155.jpg

wKioL1N4bVKhjebrAADctn-g_Lc769.jpg

   編輯/usr/local/amoeba/conf/dbServers.xml配置文件,定義master和readservers

wKiom1N4buOj2bwgAAInLGnWEx8390.jpg

wKioL1N4b3_iZs-1AAL-yLqXxhg352.jpg


   啓動amoeba使其運行在後臺,連接amoeba,使用tcpdump在master、slave服務器上抓包,創建一個數據庫,並多使用幾次查詢語句,驗證寫操作是否被調度至master(172.16.254.150),而讀操作會以輪叫的方式調度至master和slave,可以分攤mysql的讀請求

[root@localhost mysql]# tcpdump -i eth0 -nn -XX ip dst host 172.16.254.150 and tcp dst port 3306
[root@localhost mysql]# tcpdump -i eth0 -nn -XX ip dst host 172.16.254.151 and tcp dst port 3306


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章