001.Amoeba读写分离部署
生活随笔
收集整理的這篇文章主要介紹了
001.Amoeba读写分离部署
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一 Amoeba簡介
Amoeba(變形蟲)項目,該開源框架于2008年 開始發布一款 Amoeba forMysql軟件。這個軟件致力于MySQL的分布式數據庫前端代理層,它主要在應用層訪問MySQL的時候充當SQL路由功能,專注于分布式數據庫代理層(Database Proxy)開發。座落與 Client、DB Server(s)之間,對客戶端透明。具有負載均衡、高可用性、SQL 過濾、讀寫分離、可路由相關的到目標數據庫、可并發請求多臺數據庫合并結果。通過Amoeba你能夠完成多數據源的高可用、負載均衡、數據切片的功能,目前Amoeba已在很多企業的生產線上面使用。 主要解決: ? 降低 數據切分帶來的復雜多數據庫結構 ? 提供切分規則并降低 數據切分規則 給應用帶來的影響 ? 降低db 與客戶端的連接數 ? 讀寫分離二 前期規劃
1.1 主機規劃
1.2 虛擬IP規劃
1.3 用戶列表
提示:以上角色需要在所有節點添加。1.4 整體架構
三 MySQL-MMM基礎部署
略,具體可參考《002.MMM雙主-雙從讀寫分離部署》。四 基礎JDK安裝
4.1 JDK下載
下載鏈接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html JDK版本:jdk-8u144-linux-x64.rpm4.2 JDK安裝及配置
1 [root@Amoeba tmp]# rpm -ivh jdk-8u144-linux-i586.rpm2 [root@Amoeba ~]# vi /etc/profile3 #set java environment4 JAVA_HOME=/usr/java/jdk1.8.0_144/5 JRE_HOME=/usr/java/jdk1.8.0_144/jre/6 CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib7 PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin8 export JAVA_HOME JRE_HOME CLASS_PATH PATH9 [root@Amoeba ~]# source /etc/profile10 [root@Amoeba ~]# java -version #驗證是否安裝成功五 Amoeba安裝
5.1 Amoeba下載
1 [root@Amoeba tmp]# wget https://nchc.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/3.x/amoeba-mysql-3.0.5-RC-distribution.zip2 [root@Amoeba tmp]# unzip amoeba-mysql-3.0.5-RC-distribution.zip -d /usr/local/3 [root@Amoeba ~]# mv /usr/local/amoeba-mysql-3.0.5-RC/ /usr/local/amoeba5.2 Amoeba-dbServers配置
- dbServers.xml:讀寫分離配置文件
- access_list.conf:IP訪問列表控制配置文件
- Amoeba的配置文件路徑:/usr/local/amoeba/conf
5.3 Amoeba-amoeba配置
1 [root@Amoeba ~]# vi /usr/local/amoeba/conf/amoeba.xml2 ……3 <property name="port">8066</property> #設置amoeba監聽的端口,默認是80664 ……5 <property name="ipAddress">127.0.0.1</property> #配置監聽的接口,如果不設置,默認監聽所以的IP6 ……7 <property name="user">root</property>8 <property name="password">x120952576</property> 注意:- 以上配置客戶端連接amoeba時需要使用這里設定的賬號;
- 此處賬號密碼和amoeba連接后端數據庫服務器的密碼無關;
- 前端應用程序連接數據庫的地址就是Amoeba服務器的值,連接用戶名和密碼即為此處配置的用戶名和密碼。
六 數據庫配置
6.1 創建數據庫
1 [root@Client ~]# mysql -ummm_test -px120952576 -h172.24.8.100 #從客戶端使用可寫vip連接數據庫2 mysql> create database testdb; #曾經testdb數據庫3 [root@Master02 ~]# mysql -uroot -px120952576 #使用Master02進入4 mysql> show databases; #驗證是否復制成功 提示:其他節點測試略。6.2 授權Amoeba用戶
1 [root@Master01 ~]# mysql -uroot -px1209525762 mysql> grant all on testdb.* to 'test1'@'172.24.8.14' identified by 'x12345678'; 注意:其他所有節點均需要授權此用戶。七 啟動Amoeba
1 [root@Amoeba ~]# /usr/local/amoeba/bin/launcher 可能會出現以下報錯,原因是stack size太小,導致JVM啟動失敗 可執行如下修復操作: 1 [root@Amoeba ~]# vim /usr/local/amoeba/jvm.properties2 JVM_OPTIONS="-server -Xms2048m -Xmx2048m -Xss512k -XX:PermSize=16m -XX:MaxPermSize=96m" 提示:原為:JVM_OPTIONS="-server -Xms256m -Xmx1024m -Xss196k -XX:PermSize=16m -XX:MaxPermSize=96m" 1 [root@Amoeba ~]# /usr/local/amoeba/bin/launcher & #建議直接放入后臺啟動2 [root@Amoeba ~]# echo "/usr/local/amoeba/bin/launcher &" >> /etc/rc.local [root@Amoeba ~]# netstat -unlpt | grep java #查看進程八 測試
8.1 打開日志記錄
1 [root@Master01 ~]# touch /var/log/mysql_query_log2 [root@Master01 ~]# chown mysql:mysql /var/log/mysql_query_log3 [root@Master01 ~]# vi /etc/my.cnf4 general_log=ON5 general_log_file=/var/log/mysql_query_log.log 注意: 打開MySQL日志記錄,必須存在log文件,且同時對MySQL具有權限; 所有節點均需要打開日志記錄,方便記錄測試情況。8.2 新增對應數據
1 [root@Master01 ~]# mysql -uroot -px1209525762 mysql> use testdb;3 mysql> create table mmm_test(id int,email varchar(60));4 mysql> insert into mmm_test (id,email) values (100,'ip is 172.24.8.10'); 提示: 創建用于測試的表mmm_test,并插入含該節點IP的條目,方便之后測試; 所有節點均需要執行以上操作,但ip更換為對應的ip節點即可。8.3 讀寫分離測試
1 [root@Client ~]# mysql -uroot -h172.24.8.14 -px120952576 -P80662 mysql> select * from testdb.mmm_test; 提示:- 此處在Client端使用的是Amoeba的IP連接,端口為Amoeba服務的8066端口;
- 多次執行查詢,可知select請求均衡的分配在MMM集群中的4個節點,由于Master01和Master02同步復制,因為有兩條相同結果。
九 其他附加
Amoeba主配置文件:$AMOEBA_HOME/conf/amoeba.xml,用來配置Amoeba服務的基本參數,如Amoeba主機地址、端口、認證方式、用于連接的用戶名、密碼、線程數、超時時間、其他配置文件的位置等。 數據庫服務器配置文件:$AMOEBA_HOME/conf/dbServers.xml,用來存儲和配置Amoeba所代理的數據庫服務器的信息,如:主機IP、端口、用戶名、密碼等。 切分規則配置文件:$AMOEBA_HOME/conf/rule.xml,用來配置切分規則。 數據庫函數配置文件:$AMOEBA_HOME/conf/functionMap.xml,用來配置數據庫函數的處理方法,Amoeba將使用該配置文件中的方法解析數據庫函數。 切分規則函數配置文件:$AMOEBA_HOME/conf/ruleFunctionMap.xml,用來配置切分規則中使用的用戶自定義函數的處理方法。 訪問規則配置文件:$AMOEBA_HOME/conf/access_list.conf,用來授權或禁止某些服務器IP訪問Amoeba。 日志規格配置文件:$AMOEBA_HOME/conf/log4j.xml,用來配置Amoeba輸出日志的級別和方式。 參考資料:http://www.cnblogs.com/liuyisai/p/6009379.html轉載于:https://www.cnblogs.com/itzgr/p/10331121.html
總結
以上是生活随笔為你收集整理的001.Amoeba读写分离部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字节教育大裁员:有员工赔了一套首付款!
- 下一篇: 史上最全jdk版本新特性大全