日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

amoeba mysql_详解如何利用amoeba(变形虫)实现mysql数据库读写分离

發布時間:2023/12/18 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 amoeba mysql_详解如何利用amoeba(变形虫)实现mysql数据库读写分离 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于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/

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

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

conf/dbServers.xml :

`3306

#設置Amoeba要連接的mysql數據庫的端口,默認是3306

testdb

#設置缺省的數據庫,當連接amoeba時,操作表必須顯式的指定數據庫名,即采用dbname.tablename的方式,不支持 use dbname指定缺省庫,因為操作會調度到各個后端dbserver

test1

#設置amoeba連接后端數據庫服務器的賬號和密碼,因此需要在所有后端數據庫上創建該用戶,并授權amoeba服務器可連接

111111

500  #最大連接數,默認500

500    #最大空閑連接數

1    #最新空閑連接數

  #設置一個后端可寫的數據庫,這里定義為writedb,這個名字可以任意命名,后面還會用到

172.22.10.237 #設置后端可寫dbserver的ip

  #設置后端可讀數據庫

10.4.66.58

  #設置定義一個虛擬的dbserver,實際上相當于一個dbserver組,這里將可讀的數據庫ip統一放到一個組中,將這個組的名字命名為myslave

1  #選擇調度算法,1表示復制均衡,2表示權重,3表示HA, 這里選擇1

slave01  #myslave組成員`

conf/amoeba.xml :

8066

#設置amoeba監聽的端口,默認是8066

127.0.0.1

#配置監聽的接口,如果不設置,默認監聽所以的IP

# 提供客戶端連接amoeba時需要使用這里設定的賬號 (這里的賬號密碼和amoeba連接后端數據庫服務器的密碼無關)

root

123456

myslave

#設置amoeba默認的池,這里設置為writedb

master

#這兩個選項默認是注銷掉的,需要取消注釋,這里用來指定前面定義好的倆個讀寫池

slave01

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也不例外;

現在可以啟動了:

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

這時,你只需要通過本機ip的8066端口和你配置文件中設置的賬號密碼來連接數據庫就行了,寫入的數據都會到master里,讀取的數據都會從slave中讀取;

測試:

關閉master數據庫,依然可以讀取:執行 select 查看命令;

或者

關閉slave數據庫,依然可以寫入: 執行 update、inster命令;

總結

以上是生活随笔為你收集整理的amoeba mysql_详解如何利用amoeba(变形虫)实现mysql数据库读写分离的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。