amoeba實現mysql讀寫分離

  • 實施環境:

    master(amoeba):192.168.122.201

         安裝:java-1.7.0-openjdk.x86_64,mysql-server,amoeba-mysql-3.0.5-RC-distribution.zip

    slave:192.168.122.202

        安裝:mysql-server

  • 配置主從master與slave的主從環境(略過)

  • master與slave上創建用於amoeba連接數據庫的授權用戶:

    grant all privileges on *.* to amoeba@'%' identified by 'amoeba';

  • amoeba的dbServer.xml配置文件修改:

    <dbServer name="abstractServer" abstractive="true">
                      <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">
                              <property name="connectionManager">${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">amoeba</property>
                             <property name="password">amoeba</property>

                     </factoryConfig>

       #紅色部分表示amoeba連接主從mysql的端口,操作的庫(這個地方好像只要grant授權足夠,可以忽略這塊),用戶名及密碼(即步驟3創建的用戶名和密碼)

    <dbServer name="master"  parent="abstractServer">
                     <factoryConfig>
                             <!-- mysql ip -->
                             <property name="ipAddress">192.168.122.201</property>
                     </factoryConfig>
             </dbServer>
             <dbServer name="slave"  parent="abstractServer">
                     <factoryConfig>
                             <!-- mysql ip -->
                             <property name="ipAddress">192.168.122.202</property>
                     </factoryConfig>
             </dbServer>

      #定義mysql主機

    <dbServer name="slavePool" 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">slave</property>
                     </poolConfig>
             </dbServer>
     #定義負載均衡策略及主機組

  • amoeba的amoeba.xml配置文件修改:

    <property name="port">8066</property>
    <property name="ipAddress">0.0.0.0</property>

    #定義amoeba代理服務器端口及綁定ip地址

    <property name="user">amoeba</property>
    <property name="password">amoeba</property>

    #定義amoeba代理服務器的用戶名和密碼

    <property name="defaultPool">slavePool</property>
    <property name="writePool">master</property>
    <property name="readPool">slave</property>

    #定義讀寫服務器

  • 創建amoeba日誌存放目錄,並修改權限

    mkdir -m a=rwx /usr/local/amoeba/logs

  • 啓動amoeba服務
    /usr/local/amoeba/bin/launcher &

  • 測試

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