亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用amoeba(變形蟲)實現mysql數據庫讀寫分離

發布時間:2020-07-10 15:12:49 來源:網絡 閱讀:396 作者:可樂程序員 欄目:大數據

關于mysql的讀寫分離架構有很多,百度的話幾乎都是用mysql_proxy實現的。由于proxy是基于lua腳本語言實現的,所以網上不少網友表示proxy效率不高,也不穩定,不建議在生產環境使用;
amoeba是阿里開發的一款數據庫讀寫分離的項目(讀寫分離只是它的一個小功能),由于是基于java編寫的,所以運行環境需要安裝jdk;

前期準備工作:
1.兩個數據庫,一主一從,主從同步;
master: 172.22.10.237:3306 ;主庫負責寫入操作;
slave: 10.4.66.58:3306 ; 從庫負責讀取操作;
amoeba: 172.22.10.237:8066 ; 我把amoeba安裝到了主庫所在的服務器,當然,你也可以安裝到第三臺服務器上;
所有服務器操作系統均為centos7;
2.在amoeba所在的服務器上配置安裝jdk;
我安裝的是jdk1.8;
路徑是: JAVA_HOME=/usr/local/java/jdk1.8.0_131

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

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

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

????<property?name="maxActive">500</property>  #最大連接數,默認500????<property?name="maxIdle">500</property>    #最大空閑連接數????<property?name="minIdle">1</property>    #最新空閑連接數????<dbServer?name="writedb"??parent="abstractServer">  #設置一個后端可寫的數據庫,這里定義為writedb,這個名字可以任意命名,后面還會用到????????<property?name="ipAddress">172.22.10.237</property>?#設置后端可寫dbserver的ip????<dbServer?name="slave01"??parent="abstractServer">  #設置后端可讀數據庫????????<property?name="ipAddress">10.4.66.58</property>

?????<dbServer?name="myslave"?virtual="true">  #設置定義一個虛擬的dbserver,實際上相當于一個dbserver組,這里將可讀的數據庫ip統一放到一個組中,將這個組的名字命名為myslave????????????<property?name="loadbalance">1</property>  #選擇調度算法,1表示復制均衡,2表示權重,3表示HA,?這里選擇1????????????<property?name="poolNames">slave01</property>  #myslave組成員`

conf/amoeba.xml :

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

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

bin/launcher :

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

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

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

有經驗的運維都知道,凡是和jdk沾上邊的,基本都會和內存的調優有關系,amoeba也不例外;


現在可以啟動了:
利用amoeba(變形蟲)實現mysql數據庫讀寫分離

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇坪县| 宁波市| 金门县| 武强县| 新昌县| 呈贡县| 遂溪县| 凭祥市| 南城县| 徐汇区| 边坝县| 英山县| 靖江市| 策勒县| 嘉祥县| 彰化市| 海门市| 禄丰县| 顺平县| 柘荣县| 蓬莱市| 克拉玛依市| 廊坊市| 辽阳县| 五河县| 湘阴县| 宜春市| 金乡县| 布拖县| 兴安县| 始兴县| 常熟市| 大化| 阿坝| 靖边县| 水富县| 缙云县| 泗阳县| 八宿县| 二连浩特市| 云林县|