如何利用amoeba(變形蟲)成功實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離

下文主要給大家?guī)砣绾卫胊moeba(變形蟲)成功實(shí)現(xiàn)MySQL數(shù)據(jù)庫讀寫分離,希望利用amoeba(變形蟲)成功實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離能夠帶給大家實(shí)際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、桂陽ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的桂陽網(wǎng)站制作公司

前期準(zhǔn)備工作:
1.兩個數(shù)據(jù)庫,一主一從,主從同步;
master: 172.22.10.237:3306 ;主庫負(fù)責(zé)寫入操作;
slave: 10.4.66.58:3306 ; 從庫負(fù)責(zé)讀取操作;
amoeba: 172.22.10.237:8066 ; 我把a(bǔ)moeba安裝到了主庫所在的云服務(wù)器,當(dāng)然,你也可以安裝到第三臺云服務(wù)器上;
所有云服務(wù)器操作系統(tǒng)均為centos7;
2.在amoeba所在的云服務(wù)器上配置安裝jdk;
我安裝的是jdk1.8;
路徑是: JAVA_HOME=/usr/local/java/jdk1.8.0_131

以上務(wù)必自己點(diǎn)搭建、配置好,主從正常工作,添加jdk環(huán)境變量: /etc/profile ;

安裝amoeba的方式有很多,這里就不在安裝上面費(fèi)口舌了,我下載了amoeba-mysql-3.0.5-RC-distribution的安裝包,直接解壓即可使用;
解壓目錄: /usr/local/amoeba/
如何利用amoeba(變形蟲)成功實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離
很明顯 conf里是配置文件,bin里是啟動程序;
剛才說到 amoeba的功能可不止讀寫分離,但如果只用讀寫分離功能的話只需要配置這幾個個文件即可: conf/dbServers.xml  conf/amoeba.xml 和  bin/launcher ;
conf/dbServers.xml :

 `<property name="port">3306</property>  
           #設(shè)置Amoeba要連接的mysql數(shù)據(jù)庫的端口,默認(rèn)是3306
    <property name="schema">testdb</property>  
          #設(shè)置缺省的數(shù)據(jù)庫,當(dāng)連接amoeba時,操作表必須顯式的指定數(shù)據(jù)庫名,即采用dbname.tablename的方式,不支持 use dbname指定缺省庫,因?yàn)椴僮鲿{(diào)度到各個后端dbserver
    <property name="user">test1</property>  
             #設(shè)置amoeba連接后端數(shù)據(jù)庫云服務(wù)器的賬號和密碼,因此需要在所有后端數(shù)據(jù)庫上創(chuàng)建該用戶,并授權(quán)amoeba云服務(wù)器可連接
    <property name="password">111111</property>

    <property name="maxActive">500</property>  #最大連接數(shù),默認(rèn)500
    <property name="maxIdle">500</property>    #最大空閑連接數(shù)
    <property name="minIdle">1</property>    #最新空閑連接數(shù)

    <dbServer name="writedb"  parent="abstractServer">  #設(shè)置一個后端可寫的數(shù)據(jù)庫,這里定義為writedb,這個名字可以任意命名,后面還會用到
        <property name="ipAddress">172.22.10.237</property> #設(shè)置后端可寫dbserver的ip

    <dbServer name="slave01"  parent="abstractServer">  #設(shè)置后端可讀數(shù)據(jù)庫
        <property name="ipAddress">10.4.66.58</property>

     <dbServer name="myslave" virtual="true">  #設(shè)置定義一個虛擬的dbserver,實(shí)際上相當(dāng)于一個dbserver組,這里將可讀的數(shù)據(jù)庫ip統(tǒng)一放到一個組中,將這個組的名字命名為myslave
            <property name="loadbalance">1</property>  #選擇調(diào)度算法,1表示復(fù)制均衡,2表示權(quán)重,3表示HA, 這里選擇1
            <property name="poolNames">slave01</property>  #myslave組成員`

conf/amoeba.xml :

<property name="port">8066</property>    
        #設(shè)置amoeba監(jiān)聽的端口,默認(rèn)是8066
        <property name="ipAddress">127.0.0.1</property> 
                #配置監(jiān)聽的接口,如果不設(shè)置,默認(rèn)監(jiān)聽所以的IP
                # 提供客戶端連接amoeba時需要使用這里設(shè)定的賬號 (這里的賬號密碼和amoeba連接后端數(shù)據(jù)庫云服務(wù)器的密碼無關(guān))
            <property name="user">root</property> 
            <property name="password">123456</property>

        <property name="defaultPool">myslave</property>  
                #設(shè)置amoeba默認(rèn)的池,這里設(shè)置為writedb
        <property name="writePool">master</property>  
                #這兩個選項(xiàng)默認(rèn)是注銷掉的,需要取消注釋,這里用來指定前面定義好的倆個讀寫池
        <property name="readPool">slave01</property>

bin/launcher :

        #啟動腳本,需要配置jdk環(huán)境變量;
        #在注釋后的第一行添加:
        JAVA_HOME=/usr/local/java/jdk1.8.0_131

launcher 是啟動腳本,如果不配置JAVA_HOME的話,即便你在/etc/profile中配置了環(huán)境變量也可能會報(bào)錯:沒有配置jdk環(huán)境變量;
還有一個配置文件: jvm.properties

        #占用內(nèi)存配置文件
        # -Xss參數(shù)有最小值要求,必須大于228才能啟動JVM
        #修改:
            JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"

有經(jīng)驗(yàn)的運(yùn)維都知道,凡是和jdk沾上邊的,基本都會和內(nèi)存的調(diào)優(yōu)有關(guān)系,amoeba也不例外;


現(xiàn)在可以啟動了:
如何利用amoeba(變形蟲)成功實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離

啟動后就可以看到本機(jī)的8066端口:
如何利用amoeba(變形蟲)成功實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離
這時,你只需要通過本機(jī)ip的8066端口和你配置文件中設(shè)置的賬號密碼來連接數(shù)據(jù)庫就行了,寫入的數(shù)據(jù)都會到master里,讀取的數(shù)據(jù)都會從slave中讀??;
測試:
關(guān)閉master數(shù)據(jù)庫,依然可以讀取:執(zhí)行 select 查看命令;
或者
關(guān)閉slave數(shù)據(jù)庫,依然可以寫入: 執(zhí)行 update、inster命令;

對于以上關(guān)于利用amoeba(變形蟲)成功實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。

網(wǎng)頁題目:如何利用amoeba(變形蟲)成功實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離
本文網(wǎng)址:http://bm7419.com/article42/iihcec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名定制開發(fā)、商城網(wǎng)站小程序開發(fā)、網(wǎng)站維護(hù)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司