Amoeba新版本MYSQL讀寫(xiě)分離如何配置

小編給大家分享一下Amoeba新版本MySQL讀寫(xiě)分離如何配置,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

讓客戶(hù)滿意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、網(wǎng)站空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、葉城網(wǎng)站維護(hù)、網(wǎng)站推廣。

官方簡(jiǎn)介
Amoeba的中文意思是變型蟲(chóng)
主要解決:
• 降低 數(shù)據(jù)切分帶來(lái)的復(fù)雜多數(shù)據(jù)庫(kù)結(jié)構(gòu)
• 提供切分規(guī)則并降低 數(shù)據(jù)切分規(guī)則 給應(yīng)用帶來(lái)的影響
• 降低db 與客戶(hù)端的連接數(shù)
• 讀寫(xiě)分離

個(gè)人簡(jiǎn)單描述
可能你還沒(méi)明白Amoebla這鬼東西主要干麻的呢!比方說(shuō)PHP環(huán)境眾所周知,PHP沒(méi)有數(shù)據(jù)連接池,如果PHP環(huán)境下MYSQL訪問(wèn)量大時(shí)會(huì)蹦掉,除非配置Cluster集群,而Amoeba就是在PHP程序和MYSQL之間,充當(dāng)一個(gè)緩沖的作用。

準(zhǔn)備工作
Server:192.168.1.208 #Amoeba
Server:192.168.1.11  #NDBD1(主)
Server:1921.68.1.13  #NDBD2(從)
注:11和13兩臺(tái)服務(wù)器上,事先請(qǐng)安裝好MYSQL單向步

另請(qǐng)安裝MYSQL版本必須5.1以上,因?yàn)樾掳娴腁moeba2.10對(duì)5.1以下版本不穩(wěn)定。

結(jié)構(gòu)圖

Step 1:配置Amoeba192.168.2.8讀寫(xiě)分離 
1:解壓安裝包
[root@Management down]# mkdir /usr/local/amoeba
[root@Management down]# tar -zxf amoeba-mysql-binary-2.1.0-RC5.tar.gz -C /usr/local/amoeba/
2:進(jìn)入配置目錄,瀏覽文件
[root@Management down]# cd /usr/local/amoeba/
[root@Management amoeba]# ll
total 88
drwxr-xr-x 2 root root    4096 Jul 26 11:57 benchmark
drwxr-xr-x 2 root root    4096 Feb 28 09:25 bin
-rw-r--r-- 1 root root    3983 May 18 13:43 changelogs.txt
drwxr-xr-x 2 root root    4096 Jul 26 11:57 conf
drwxr-xr-x 3 root root    4096 Jul 26 11:57 lib
-rw-r--r-- 1 root root 34520 May 18 13:43 LICENSE.txt
-rw-r--r-- 1 root root    2031 May 18 13:43 README.html
3:進(jìn)入主配置文件目錄
[root@Management amoeba]# cd conf/
[root@Management conf]# ls
access_list.conf    amoeba.xml        dbServers.xml    functionMap.xml    log4j.xml    ruleFunctionMap.xml
amoeba.dtd                dbserver.dtd    function.dtd     log4j.dtd                rule.dtd     rule.xml
在這里我主要介紹配置  amoeba.xml、    dbServers.xml、 log4j.xml 三個(gè)主要的配置文件,其它文件沒(méi)有特殊需要默認(rèn)就可以了奪
4:vi amoeba.xml 修改主配置文件
4.1)把默認(rèn)端口8066改成3306
<property name="port">3066</property>
4.2)把默認(rèn)連接用戶(hù)名和密碼改成自己的
<property name="user">sky</property>

                                                                                <property name="password">123456</property>
4.3)把默認(rèn)的客戶(hù)端線程數(shù),請(qǐng)求數(shù)及服務(wù)端回應(yīng)數(shù)改成200,300,300
<property name="readThreadPoolSize">200</property>

                                                <!-- proxy server client process thread size -->
                                                <property name="clientSideThreadPoolSize">300</property>

                                                <!-- mysql server data packet process thread size -->
                                                <property name="serverSideThreadPoolSize">300</property
4.4)把默認(rèn)注釋掉的讀寫(xiě)分離選項(xiàng),把注釋去掉并readpool修改成server2
<!--
                                -->
                                <property name="writePool">server1</property>
                                <property name="readPool">server2</property>

                                    
 5:vi dbServers.xml 增加SEVER2模塊,里面的連接用戶(hù)名密碼及地址都表示兩臺(tái)MYSQL的物理機(jī)器,192.168.1.11和192.168.1.13 另SERVER1是寫(xiě),SERVER是讀
需要手動(dòng)增加SERVER2代碼如下:
  <dbServer name="abstractServer" abstractive="true">

    <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

      <property name="manager">${defaultManager}</property>

      <property name="sendBufferSize">64</property>

      <property name="receiveBufferSize">128</property>

      <!-- mysql port -->

      <property name="port">3306</property>

      <!-- mysql schema -->

      <property name="schema">test</property>

      <!-- mysql user -->

      <property name="user">root</property>

      <!--    mysql password

      -->

      <property name="password">123456</property>

    </factoryConfig>

    <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">

      <property name="maxActive">500</property>

      <property name="maxIdle">500</property>

      <property name="minIdle">10</property>

      <property name="minEvictableIdleTimeMillis">600000</property>

      <property name="timeBetweenEvictionRunsMillis">600000</property>

      <property name="testOnBorrow">true</property>

      <property name="testWhileIdle">true</property>

    </poolConfig>

  </dbServer>

  <dbServer name="server1"    parent="abstractServer">

    <factoryConfig>

      <!-- mysql ip -->

      <property name="ipAddress">192.168.2.11</property>

    </factoryConfig>

  </dbServer>


最終改變成如下:
<?xml version="1.0" encoding="gbk"?>

<!DOCTYPE amoeba:dbServers SYSTEM "dbserver.dtd">

<amoeba:dbServers xmlns:amoeba="">

    <!--   

      Each dbServer needs to be configured into a Pool,

      If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration:

        add attribute with name virtual = "true" in dbServer, but the configuration does not allow the element with name factoryConfig

        such as 'multiPool' dbServer       

    -->

  <dbServer name="abstractServer" abstractive="true">

    <factoryConfig class="com.meidusa.amoeba..net.MysqlServerConnectionFactory">

      <property name="manager">${defaultManager}</property>

      <property name="sendBufferSize">64</property>

      <property name="receiveBufferSize">128</property>

      <!-- mysql port -->

      <property name="port">3306</property>

      <!-- mysql schema -->

      <property name="schema">test</property>

      <!-- mysql user -->

      <property name="user">root</property>

      <!--    mysql password

      -->

      <property name="password">123456</property>

    </factoryConfig>

    <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">

      <property name="maxActive">500</property>

      <property name="maxIdle">500</property>

      <property name="minIdle">10</property>

      <property name="minEvictableIdleTimeMillis">600000</property>

      <property name="timeBetweenEvictionRunsMillis">600000</property>

      <property name="testOnBorrow">true</property>

      <property name="testWhileIdle">true</property>

    </poolConfig>

  </dbServer>

  <dbServer name="server1"    parent="abstractServer">

    <factoryConfig>

      <!-- mysql ip -->

      <property name="ipAddress">192.168.2.11</property>

    </factoryConfig>

  </dbServer>

      <!-- ########################把如上的內(nèi)容復(fù)制到下面,來(lái)增加SERVER2############################ -->

  <dbServer name="abstractServer" abstractive="true">

    <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

      <property name="manager">${defaultManager}</property>

      <property name="sendBufferSize">64</property>

      <property name="receiveBufferSize">128</property>

      <!-- mysql port -->

      <property name="port">3306</property>

      <!-- mysql schema -->

      <property name="schema">test</property>

      <!-- mysql user -->

      <property name="user">root</property>

      <property name="password">123456</property>

    </factoryConfig>

    <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">

      <property name="maxActive">500</property>

      <property name="maxIdle">500</property>

      <property name="minIdle">10</property>

      <property name="minEvictableIdleTimeMillis">600000</property>

      <property name="timeBetweenEvictionRunsMillis">600000</property>

      <property name="testOnBorrow">true</property>

      <property name="testWhileIdle">true</property>

    </poolConfig>

  </dbServer>

  <dbServer name="server2"    parent="abstractServer">

    <factoryConfig>

      <!-- mysql ip -->

      <property name="ipAddress">192.168.2.13</property>

    </factoryConfig>

  </dbServer>


 <dbServer name="multiPool" virtual="true">

    <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">

      <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->

      <property name="loadbalance">1</property>

      <!-- Separated by commas,such as: server1,server2,server1 -->

      <property name="poolNames">server1</property>

    </poolConfig>

  </dbServer>

</amoeba:dbServers>

6:修改log4j.xml 取消日志文件生成(太大了,磁盤(pán)很容易滿)
<param name="file" value="${amoeba.home}/logs/project.log"/>
改成
<param name="file" value="<![CDATA[${amoeba.home}/logs/project.log>/dev/null]]>"/>
7:性能優(yōu)化,打開(kāi)bin/amoeba

DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss128k"
改成
DEFAULT_OPTS="-server -Xms512m -Xmx512m -Xmn100m -Xss1204k"
8:?jiǎn)?dòng)amoeba
nohup /usr/local/amoeba/bin/amoeba start 2>&1 >/dev/null &

看完了這篇文章,相信你對(duì)“Amoeba新版本MYSQL讀寫(xiě)分離如何配置”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站標(biāo)題:Amoeba新版本MYSQL讀寫(xiě)分離如何配置
文章位置:http://muchs.cn/article8/jpicop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作做網(wǎng)站網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站策劃、網(wǎng)站排名、搜索引擎優(yōu)化

廣告

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

成都定制網(wǎng)站建設(shè)