大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Amoeba實現(xiàn)數(shù)據(jù)庫讀寫分離

Amoeba實現(xiàn)數(shù)據(jù)庫讀寫分離

更新時間:2022-10-18 10:17:31 來源:動力節(jié)點 瀏覽1710次

1.環(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的運行需要jdk)

2.安裝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? SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot? 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
	#這兩個選項默認(rèn)是注銷掉的,需要取消注釋,這里用來指定寫庫和讀庫
 <property name="writePool">master</property>   
  <property name="readPool">multiPool</property> #這給的是一個組,如果這個組里有多個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ù)據(jù)庫名,即采用dbname.tablename的方式,不支持 use dbname指定缺省庫,因為操作會調(diào)度到各個后端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è)置一個后端的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è)置一個后端的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"> #定義一個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)有多個時用逗號分隔
            </poolConfig>
    </dbServer>

3.mysql授權(quán)amoeba用戶登錄

master上授權(quán):

mysql> grant select,insert,update,delete on . to ‘a(chǎn)moeba’@‘10.0.0.%’ identified by ‘123456’;
mysql> flush privileges;

slave上授權(quán):

mysql> grant select on . to ‘a(chǎn)moeba’@‘10.0.0.%’ identified by ‘123456’;
mysql> flush privileges;

注意:此處授權(quán)的用戶密碼要和dbServers.xml中配置的一致。如果你的mysql開啟所有庫主從同步則你在主上授權(quán)的用戶會同步到從庫,解決方法是:(1)在從庫上降權(quán);(2)主從同步時不讓mysql庫同步

4.啟動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     :::*

5.測試:

用另外的mysql客戶端連接amoeba,測試時我暫停了主從同步,以便更直接的看出效果

# mysql -uroot -p123456 -h10.0.0.159

主庫上新增一條數(shù)據(jù)

從庫上加入一條數(shù)據(jù)

回到mysql連接的客戶端驗證:

只能查看從庫的數(shù)據(jù),說明基本成功,進(jìn)一步驗證,在客戶端插入一條數(shù)據(jù)

并且客戶端在從庫上沒有查詢到新插入的數(shù)據(jù),回到主庫確認(rèn)下:

到此驗證成功,開啟主從同步即可實現(xiàn)讀寫分離(開始同步前,請自行清理掉有差異的數(shù)據(jù),以便主從能正常運行)

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久99爰这里有精品国产 | 99视频精品全部免费免费观 | 精品国产日韩亚洲一区在线 | 日韩精品一区二三区中文 | 久热中文字幕在线精品首页 | 香蕉视频在线免费看 | 亚洲一区二区欧美 | 国产成+人+综合+亚洲不卡 | 插插插色综合 | 亚洲综合爱爱久久网 | 精品国产自在久久 | 久久久网久久久久合久久久久 | 国产激情小视频 | 国产成人精品日本亚洲直接 | 2021国产精品久久久久 | 一级片aa| 久久久久久综合对白国产 | 激情综合婷婷亚洲图片 | 亚洲欧洲一区二区三区久久 | 精品一区二区三区影片 | 精品久久久久不卡无毒 | 青青青永久免费视频 | 国产真实伦偷精品 | 亚洲国产99999在线精品一区 | 久久久亚洲精品视频 | 亚洲黄色在线观看视频 | 四虎成人在线 | 精品国产一区二区三区久久影院 | 成人免费黄网站 | 思思影院| 国产精品爱啪在线线免费观看 | 欧美成视频一theporn | 日韩免费高清 | 天天爽影院一区二区在线影院 | 久久久久久久91精品免费观看 | 国产青草视频免费观看97 | 美女视频免费在线观看 | 国产福利在线观看永久视频 | 午夜久久免影院欧洲 | 免费一级特黄欧美大片勹久久网 | 深夜在线看 |