下文給大家?guī)黻P(guān)于mysql基于amoeba如何實現(xiàn)讀寫分離,感興趣的話就一起來看看這篇文章吧,相信看完mysql基于amoeba如何實現(xiàn)讀寫分離對大家多少有點幫助吧。
成都創(chuàng)新互聯(lián)是專業(yè)的聶榮網(wǎng)站建設(shè)公司,聶榮接單;提供網(wǎng)站設(shè)計、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行聶榮網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!環(huán)境:
主機A( huangzp2):172.16.115.157
主機B( huangzp3):172.16.115.100
主機C( huangzp4):172.16.115.87
說明:
依賴于主從結(jié)構(gòu)
需要中間件(連接兩個獨立的應(yīng)用程序或獨立的系統(tǒng),即使沒有相同的接口,也能為他們交換數(shù)據(jù))實現(xiàn),如tomcat、weblogic、數(shù)據(jù)庫中間件
mysql proxy,支持讀寫分離、負載均衡、故障轉(zhuǎn)移,缺點:性能差,不支持大數(shù)量轉(zhuǎn)發(fā),需要用到lua腳本
atlas,性能較差,相應(yīng)時間較長,不支持動態(tài)參數(shù)的配置加載,即先關(guān)閉數(shù)據(jù)庫,不適用在線業(yè)務(wù);
amoeba,阿里研發(fā)和使用的,除了支持讀寫分離,也支持數(shù)據(jù)庫分區(qū)、分表操作,對數(shù)據(jù)庫性能較小,因為研發(fā)工程師跳槽至盛大,怕數(shù)據(jù)泄露,不用
cobar,阿里現(xiàn)在在使用的中間件,半開源軟件,有較多限制)
1. 主從機器AB上安裝mysql和mysql-server,修改配置文件和授權(quán)、查看狀態(tài)
yum install -y mysql mysql-server
主上A:修改配置文件vim /etc/my.cnf,重啟,授權(quán)(所有權(quán)限,更方便)、狀態(tài)
grant all privileges on *.* to 'silen'@'%' identified by '123456';
說明:
從上B:修改配置文件vim /etc/my.cnf,重啟,填寫Master.info信息、開啟slave,查看狀態(tài)
主上A:
從上B:
2. 從上也需要授權(quán),讓中間件能過訪問
grant all privileges on *.* to 'silen'@'%' identified by '123456';
3. 中間件云服務(wù)器設(shè)置
3.1 環(huán)境:
(1)先安裝gcc環(huán)境;
yum install -y gcc*
(2)需要獲得amoeba主程序:amoeba-mysql-1.3.1-BETA.zip
下載鏈接:http://101.110.118.21/jaist.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/amoeba-mysql-1.3.1-BETA.zip
(3)java的安裝包:jdk-7u40-linux-x64.tar.gz
下載鏈接:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
3.2 配置全局變量
3.2.1 創(chuàng)建 /amoeba目錄,將java解壓到該目錄下
mkdir /amoeba
tar -zxvf jdk-7u40-linux-x64.tar.gz -C /amoeba/
3.2.2 目錄標題較長,做個軟鏈接,即可
ln -s jdk1.7.0_40/ jdk
3.2.3 編輯全局變量
vim /etc/profile配置java選項(java的東西都需要聲明)
JAVA_HOME=/amoeba/jdk
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
export CLASSPATH
說明:
JAVA_HOME表示java的目錄位置,設(shè)置為全局變量,這樣其他shell也可以使用
java目錄下的工具腳本加入到系統(tǒng)環(huán)境變量中,便于執(zhí)行命令,也升級為全局變量
CLASSPATH表示java類的庫的環(huán)境變量,把當前目錄.,java下的tool.jar,dt.jar加入到變量中(Linux下用冒號隔開,Windows下用分號隔開),也升級為全局變量
3.2.4. 刷新下全局變量文件
source /etc/profile
3.2.5 驗證java是否可用
3.3 安裝配置amoeba
3.3.1 解壓至/usr/local/amoeba目錄下
unzip amoeba-mysql-1.3.1-BETA.zip -d /usr/local/amoeba
3.3.2 添加命令執(zhí)行權(quán)限,便于調(diào)用命令
chmod -R +x /usr/local/amoeba/bin/
3.3.3 修改amoeba主配置文件
vim /usr/local/amoeba/conf/amoeba.xml
<server>...</server>(云服務(wù)器性能部分設(shè)置)
A. 找到:
<!--
<property name="ipAddress">127.0.0.1</property>
-->
去注釋,改amoeba的云服務(wù)器(中間件)ip為:
<property name="ipAddress">172.16.115.87</property>
B. 找到:
<!--
<property name="password">password</property>
-->
去注釋,修改amoeba的root登錄密碼為123456:
<property name="password">123456</property>
<dbServerList>...</dbServerList>(amoeba每一個數(shù)據(jù)庫云服務(wù)器,對應(yīng)一個dbServer)(數(shù)據(jù)庫云服務(wù)器列表部分設(shè)置)
A. <dbServer name="server1">下找到:
<property name="ipAddress">127.0.0.1</property>
將ip地址改為主一的ip(端口和數(shù)據(jù)庫名可以默認3306、test):
<property name="ipAddress">172.16.115.157</property>
B. 找到:
<property name="user">root</property>
將用戶名改為授權(quán)的zhangshan:
<property name="user">silen</property>
C. 找到:
<!--
<property name="password">password</property>
-->
去掉注釋,將密碼改為123456:
<property name="password">123456</property>
D. 找到:
<dbServer name="multiPool" virtual="true">
修改dbserver池子名為master(定義池子下面哪些server屬于master這個池子,用來擴展云服務(wù)器):
<dbServer name="master" virtual="true">
E. 找到:
<property name="poolNames">server1</property>
如果master池子新增多臺主云服務(wù)器,比如server1(已在master池子中了)、server2、server3,則修改為:
<property name="poolNames">server1,server2,server3</property>
F. 因為有兩臺數(shù)據(jù)庫云服務(wù)器,已經(jīng)設(shè)置了主云服務(wù)器,所以需復(fù)制主云服務(wù)器的dbServer,作為模板,修改從云服務(wù)器dbServer
復(fù)制(64行-109行),粘貼在<dbServerList>...</dbServerList>范圍內(nèi):
<dbServer name="server1">...</dbServer>
(1)修改dbServer的名稱為server2:
dbServer name="server2"
(2)ip地址修改為192.168.9.252:
<property name="ipAddress">172.16.115.100</property>
(3)在<dbServer name="multiPool" virtual="true">下,修改池子名稱為slave:
<dbServer name="slave" virtual="true">
(4)slave池子下server主機名字修改為server2:
<property name="poolNames">server2</property>
最后跳出<dbServerList>:
A. 找到:
<property name="defaultPool">server1</property>
將單臺云服務(wù)器的名稱修改為池子名稱(如果有多臺主機,依次輪詢?nèi)シ峙洌?,作為默認訪問的云服務(wù)器:
<property name="defaultPool">master</property>
B. 找到:
<!--
<property name="writePool">server1</property>
<property name="readPool">server1</property>
-->
去掉注釋,寫入池改為master,讀取池改為slave:
<property name="writePool">master</property>
<property name="readPool">slave</property>
3.4 查看并編輯amomeba的執(zhí)行腳本文件:
vim /usr/local/amoeba/bin/amoeba
A. 找到:
DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"
修改為:
DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k"
3.5 啟動amoeba程序,并查看進程
說明:nohup命令表示,放在后臺啟動,即使采用遠程連接,遠程斷了,也能運行
nohup bash -x /usr/local/amoeba/bin/amoeba &
4. 中間件云服務(wù)器,安裝mysql,不需要安裝mysql-server,登錄amoeba
說明:用戶為配置文件中指定的用戶和密碼,默認端口為8066,登錄的其實中間件,調(diào)用的是主從服務(wù)上的mysql,這里安裝的mysql只是一個登錄的工具
yum install mysql -y
mysql -u root -p123456 -h272.16.115.87 -P 8066
測試:實際生產(chǎn)環(huán)境中,不需要操作?。?!
停用從云服務(wù)器slave,即stop slave,在主和從云服務(wù)器上的test庫中創(chuàng)建一個a1表(表名需一致,因為是主從),分別插入一條數(shù)據(jù)master和slave
主上:
從上:
結(jié)論:中間件查看a1表中數(shù)據(jù),反復(fù)查詢都是slave,表明,查詢數(shù)據(jù)是從從云服務(wù)器中獲得
中間件,往a1表中插入一條數(shù)據(jù)amoeba
結(jié)論:在主云服務(wù)器上的a1表中看到amoeba數(shù)據(jù),表明寫數(shù)據(jù)是在主云服務(wù)器中寫入
主上:
從上:
最后分別刪掉主和從上的test庫中的tb1表,從上開啟slave
看了以上關(guān)于mysql基于amoeba如何實現(xiàn)讀寫分離詳細內(nèi)容,是否有所收獲。如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當前題目:mysql基于amoeba如何實現(xiàn)讀寫分離-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://chinadenli.net/article24/cdjhje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、App開發(fā)、App設(shè)計、虛擬主機、網(wǎng)站維護、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容