濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解如何利用amoeba(變形蟲)實現(xiàn)mysql數(shù)據(jù)庫讀寫分離

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

熱門標簽:福建外呼電銷機器人加盟 昌德訊外呼系統(tǒng) 自己做地圖標注需要些什么 百度地圖標注要什么軟件 中國地圖標注公司 徐涇鎮(zhèn)騰訊地圖標注 天津公司外呼系統(tǒng)軟件 電話機器人的價格多少錢一個月 400電話申請廠家現(xiàn)貨

關(guān)于mysql的讀寫分離架構(gòu)有很多,百度的話幾乎都是用mysql_proxy實現(xiàn)的。由于proxy是基于lua腳本語言實現(xiàn)的,所以網(wǎng)上不少網(wǎng)友表示proxy效率不高,也不穩(wěn)定,不建議在生產(chǎn)環(huán)境使用;

amoeba是阿里開發(fā)的一款數(shù)據(jù)庫讀寫分離的項目(讀寫分離只是它的一個小功能),由于是基于java編寫的,所以運行環(huán)境需要安裝jdk;

前期準備工作:

1.兩個數(shù)據(jù)庫,一主一從,主從同步;

  1. master: 172.22.10.237:3306 ;主庫負責寫入操作;
  2. slave: 10.4.66.58:3306 ; 從庫負責讀取操作;
  3. amoeba: 172.22.10.237:8066 ; 我把amoeba安裝到了主庫所在的服務器,當然,你也可以安裝到第三臺服務器上;

所有服務器操作系統(tǒng)均為centos7;

2.在amoeba所在的服務器上配置安裝jdk;

我安裝的是jdk1.8;

路徑是: JAVA_HOME=/usr/local/java/jdk1.8.0_131

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

安裝amoeba的方式有很多,這里就不在安裝上面費口舌了,我下載了amoeba-mysql-3.0.5-RC-distribution的安裝包,直接解壓即可使用;

解壓目錄: /usr/local/amoeba/

很明顯 conf里是配置文件,bin里是啟動程序;

剛才說到 amoeba的功能可不止讀寫分離,但如果只用讀寫分離功能的話只需要配置這幾個個文件即可: conf/dbServers.xml conf/amoeba.xml 和 bin/launcher ;

conf/dbServers.xml :

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

  property name="maxActive">500/property>  #最大連接數(shù),默認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,實際上相當于一個dbserver組,這里將可讀的數(shù)據(jù)庫ip統(tǒng)一放到一個組中,將這個組的名字命名為myslave
      property name="loadbalance">1/property>  #選擇調(diào)度算法,1表示復制均衡,2表示權(quán)重,3表示HA, 這里選擇1
      property name="poolNames">slave01/property>  #myslave組成員`

conf/amoeba.xml :

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

    property name="defaultPool">myslave/property>  
        #設(shè)置amoeba默認的池,這里設(shè)置為writedb
    property name="writePool">master/property>  
        #這兩個選項默認是注銷掉的,需要取消注釋,這里用來指定前面定義好的倆個讀寫池
    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)境變量也可能會報錯:沒有配置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)驗的運維都知道,凡是和jdk沾上邊的,基本都會和內(nèi)存的調(diào)優(yōu)有關(guān)系,amoeba也不例外;

現(xiàn)在可以啟動了:

啟動后就可以看到本機的8066端口:


這時,你只需要通過本機ip的8066端口和你配置文件中設(shè)置的賬號密碼來連接數(shù)據(jù)庫就行了,寫入的數(shù)據(jù)都會到master里,讀取的數(shù)據(jù)都會從slave中讀?。?br />

測試:

關(guān)閉master數(shù)據(jù)庫,依然可以讀取:執(zhí)行 select 查看命令;

或者

關(guān)閉slave數(shù)據(jù)庫,依然可以寫入: 執(zhí)行 update、inster命令;

您可能感興趣的文章:
  • MySQL主從同步、讀寫分離配置步驟
  • mysql 讀寫分離(基礎(chǔ)篇)
  • MySQL的使用中實現(xiàn)讀寫分離的教程
  • mysql 讀寫分離(實戰(zhàn)篇)
  • 詳解MySQL的主從復制、讀寫分離、備份恢復
  • mysql主從復制讀寫分離的配置方法詳解
  • 詳解MySQL主從復制讀寫分離搭建

標簽:陜西 駐馬店 鄂爾多斯 荊門 北京 昌都 黔西 梅河口

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳解如何利用amoeba(變形蟲)實現(xiàn)mysql數(shù)據(jù)庫讀寫分離》,本文關(guān)鍵詞  詳解,如何,利用,amoeba,變形蟲,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解如何利用amoeba(變形蟲)實現(xiàn)mysql數(shù)據(jù)庫讀寫分離》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解如何利用amoeba(變形蟲)實現(xiàn)mysql數(shù)據(jù)庫讀寫分離的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    济阳县| 黑水县| 洮南市| 海晏县| 年辖:市辖区| 化州市| 丹巴县| 开江县| 海南省| 新乐市| 泸西县| 陆良县| 商南县| 临朐县| 聊城市| 黄大仙区| 杨浦区| 昆明市| 万荣县| 邢台市| 克山县| 西乌珠穆沁旗| 镇远县| 镇沅| 宾阳县| 建宁县| 安图县| 皋兰县| 共和县| 固原市| 泰来县| 西充县| 昌江| 彭州市| 宁明县| 棋牌| 新巴尔虎右旗| 杭锦旗| 通辽市| 库车县| 新丰县|