a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數(shù)據(jù)庫 > 文庫 > 正文

Amoeba達(dá)成數(shù)據(jù)庫讀寫分離

2024-09-07 22:13:02
字體:
供稿:網(wǎng)友
       Amoeba達(dá)成數(shù)據(jù)庫讀寫分離:

  一 環(huán)境以及軟件版本:
  系統(tǒng):CentOS Linux release 7.2.1511 (Core)
  mysql:Server version: 5.6.33
  Amoeba:amoeba-mysql-3.0.5-RC-distribution
  JDK:1.7.0_80-b15 (Amoeba的運(yùn)行需要jdk)
 
  二 安裝Amoeba:
  1 下載好所需軟件:
 
  ls
  amoeba-mysql-3.0.5-RC-distribution.zip    jdk-7u80-linux-x64.rpm
  2 安裝jdk
 
  yum -y install jdk-7u80-linux-x64.rpm
  #  java -version
      java version "1.7.0_80"
  Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
  Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
  3 解壓Amoeba
 
  unzip amoeba-mysql-3.0.5-RC-distribution.zip
   # mv amoeba-mysql-3.0.5-RC /usr/local/amoeba
   # mv amoeba-mysql-3.0.5-RC /usr/local/amoeba
   # cd /usr/local/amoeba/conf/
   # vim amoeba.xml
 
  <property name="port">3306</property>   #設(shè)置amoeba監(jiān)聽的端口,默認(rèn)是8066
      <property name="ipAddress">10.0.0.159</property>  #設(shè)置amoeba監(jiān)聽的ip地址
  <property name="user">root</property>    #設(shè)置連接amoeba的用戶
  <property name="password">123456</property>  #設(shè)置連接amoeba的密碼
      #(這里的賬號密碼和amoeba連接后端數(shù)據(jù)庫服務(wù)器的密碼無關(guān))
      <property name="defaultPool">master</property>  #設(shè)置amoeba默認(rèn)的池,這里設(shè)置為matster
      #這兩個(gè)選項(xiàng)默認(rèn)是注銷掉的,需要取消注釋,這里用來指定寫庫和讀庫
   <property name="writePool">master</property>   
    <property name="readPool">multiPool</property> #這給的是一個(gè)組,如果這個(gè)組里有多個(gè)dbServers則可以負(fù)載均衡,此組在 dbServers.xml中設(shè)置
  設(shè)置mysql庫的信息,在當(dāng)前目錄下的dbServers.xml文件里
 
  vim dbServers.xml
              <!-- mysql port --> #設(shè)置amoeba連接后端mysql的端口
         <property name="port">3306</property>
 
          <!-- mysql schema --> #設(shè)置缺省的數(shù)據(jù)庫,當(dāng)連接amoeba時(shí),操作表必須顯式的指定數(shù)據(jù)庫名,即采用dbname.tablename的方式,不支持 use dbname指定缺省庫,因?yàn)椴僮鲿{(diào)度到各個(gè)后端dbserver
           <property name="schema">test</property>
 
             <!-- mysql user --> #設(shè)置amoeba連接后端mysql的用戶名和密碼
             <property name="user">amoeba</property>
 
              <property name="password">123456</property>
 
     <dbServer name="master"  parent="abstractServer">#設(shè)置一個(gè)后端的dbServer,這里設(shè)置連接可寫的master庫,此名字可自定義,但要和amoeba.xml中調(diào)用的名字一致即可。
              <factoryConfig>
                      <!-- mysql ip -->  #后端mysql的ip地址
                      <property name="ipAddress">10.0.0.176</property>
              </factoryConfig>
      </dbServer>
 
      <dbServer name="slave"  parent="abstractServer"> #設(shè)置一個(gè)后端的dbServer,這里設(shè)置連接可讀的salve,此名字可自定義,但要和amoeba.xml中調(diào)用的名字一致即可。
              <factoryConfig>
                      <!-- mysql ip -->  #后端mysql的ip地址
                      <property name="ipAddress">10.0.0.193</property>
              </factoryConfig>
      </dbServer>
 
   <dbServer name="multiPool" virtual="true"> #定義一個(gè)dbserver組
              <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
                      <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->
                                              ##選擇調(diào)度算法,1表示輪詢負(fù)載均衡,2表示權(quán)重,3表示HA, 這里選擇1
                      <property name="loadbalance">1</property>
 
                      <!-- Separated by commas,such as: server1,server2,server1 -->
                      <property name="poolNames">slave</property> #組成員,當(dāng)有多個(gè)時(shí)用逗號分隔
              </poolConfig>
      </dbServer>
  三 mysql授權(quán)amoeba用戶登錄(此處我的兩臺mysql服務(wù)器master和slave已經(jīng)做好了主從同步,并且已經(jīng)驗(yàn)證成功,需要做主從同步請看https://blog.51cto.com/zengzeyang/1911173)
  master上授權(quán):
  mysql> grant select,insert,update,delete on . to 'amoeba'@'10.0.0.%' identified by '123456';
  mysql> flush privileges;
  slave上授權(quán):
  mysql> grant select on . to 'amoeba'@'10.0.0.%' identified by '123456';
  mysql> flush privileges;
  注意:此處授權(quán)的用戶密碼要和dbServers.xml中配置的一致。如果你的mysql開啟所有庫主從同步則你在主上授權(quán)的用戶會同步到從庫,解決方法是:1在從庫上降權(quán);2主從同步時(shí)不讓mysql庫同步
 
  四 啟動amoeba:
  #cd /usr/local/amoeba/bin
 
  vim launcher
  添加JAVA_HOME:
  JAVA_HOME=/usr/java/jdk1.7.0_80
 
      # cd /usr/local/amoeba/
   # vim jvm.properties
   修改VM_OPTIONS:
   JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"
 
         #   /usr/local/amoeba/bin/launcher
          2018-01-02 23:34:21 [INFO] Project Name=Amoeba-MySQL, PID=48981 , starting...
   log4j:WARN log4j config load completed from file:/usr/local/amoeba/conf/log4j.xml
   2018-01-02 23:34:22,152 INFO  context.MysqlRuntimeContext - Amoeba for Mysql current versoin=5.1.45-           mysql-amoeba-proxy-3.0.4-BETA
  log4j:WARN ip access config load completed from file:/usr/local/amoeba/conf/access_list.conf
  2018-01-02 23:34:22,520 INFO  net.ServerableConnectionManager - Server listening on /10.0.0.159:3306.
      #啟動成功
 
      # ss -tanlp
      LISTE    128     ::ffff:10.0.0.159:3306     :::*
  五 測試:用另外的mysql客戶端連接amoeba,測試時(shí)我暫停了主從同步,以便更直接的看出效果
 
  mysql -uroot -p123456 -h20.0.0.159
 
  主庫上新增一條數(shù)據(jù)
 
  從庫上加入一條數(shù)據(jù)
 
  回到mysql連接的客戶端驗(yàn)證:
 
  只能查看從庫的數(shù)據(jù),說明基本成功,進(jìn)一步驗(yàn)證,在客戶端插入一條數(shù)據(jù)
 
  并且客戶端在從庫上沒有查詢到新插入的數(shù)據(jù),回到主庫確認(rèn)下:
 
  到此驗(yàn)證成功,開啟主從同步即可實(shí)現(xiàn)讀寫分離(開始同步前,請自行清理掉有差異的數(shù)據(jù),以便主從能正常運(yùn)行)

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美激情一区二区三区 | 久久久久久av| 国产一区二区精品在线 | 欧美日韩国产欧美 | 九色在线| 欧美在线一二三 | 欧美成人精品一区二区男人看 | 午夜操操 | 欧美久久久久久久久久伊人 | 久久午夜精品福利一区二区 | 男人都懂的www网站免费观看 | 国产色婷婷 | 黄色网页在线观看 | 亚洲一区二区视频免费观看 | 97久久精品午夜一区二区 | 欧美一区免费 | 免费黄看片 | 一区二区三区国产 | 日本免费黄色网 | 国产精品美女视频网站 | 欧美国产日韩一区二区三区 | 欧美视频网站 | 欧美三级电影在线 | 97av视频 | 99re在线观看| 国精产品一区二区三区黑人免费看 | 亚洲精品做爰大胆视频在线 | 在线免费观看黄av | 黄色片免费在线 | 成年人视频在线免费观看 | 欧美精品 在线观看 | 99国产精品 | 不卡一区 | 免费欧美日韩 | 色在线播放 | 在线观看黄色av | 天天操天天干天天做 | 亚洲视频免费网站 | 欧美一级欧美三级在线观看 | 在线免费精品 | 国产精品高清在线 |