最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年05月08日 09:06:06   作者:星火燎愿  
這篇文章主要介紹了詳解如何利用amoeba(變形蟲(chóng))實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)讀寫(xiě)分離,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

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

前期準(zhǔn)備工作:

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

  1. master: 172.22.10.237:3306 ;主庫(kù)負(fù)責(zé)寫(xiě)入操作;
  2. slave: 10.4.66.58:3306 ; 從庫(kù)負(fù)責(zé)讀取操作;
  3. amoeba: 172.22.10.237:8066 ; 我把a(bǔ)moeba安裝到了主庫(kù)所在的服務(wù)器,當(dāng)然,你也可以安裝到第三臺(tái)服務(wù)器上;

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

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

我安裝的是jdk1.8;

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

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

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

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

很明顯 conf里是配置文件,bin里是啟動(dòng)程序;

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

conf/dbServers.xml :

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

  <property name="maxActive">500</property>  #最大連接數(shù),默認(rèn)500
  <property name="maxIdle">500</property>    #最大空閑連接數(shù)
  <property name="minIdle">1</property>    #最新空閑連接數(shù)

  <dbServer name="writedb" parent="abstractServer">  #設(shè)置一個(gè)后端可寫(xiě)的數(shù)據(jù)庫(kù),這里定義為writedb,這個(gè)名字可以任意命名,后面還會(huì)用到
    <property name="ipAddress">172.22.10.237</property> #設(shè)置后端可寫(xiě)dbserver的ip

  <dbServer name="slave01" parent="abstractServer">  #設(shè)置后端可讀數(shù)據(jù)庫(kù)
    <property name="ipAddress">10.4.66.58</property>

   <dbServer name="myslave" virtual="true">  #設(shè)置定義一個(gè)虛擬的dbserver,實(shí)際上相當(dāng)于一個(gè)dbserver組,這里將可讀的數(shù)據(jù)庫(kù)ip統(tǒng)一放到一個(gè)組中,將這個(gè)組的名字命名為myslave
      <property name="loadbalance">1</property>  #選擇調(diào)度算法,1表示復(fù)制均衡,2表示權(quán)重,3表示HA, 這里選擇1
      <property name="poolNames">slave01</property>  #myslave組成員`

conf/amoeba.xml :

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

    <property name="defaultPool">myslave</property>  
        #設(shè)置amoeba默認(rèn)的池,這里設(shè)置為writedb
    <property name="writePool">master</property>  
        #這兩個(gè)選項(xiàng)默認(rèn)是注銷掉的,需要取消注釋,這里用來(lái)指定前面定義好的倆個(gè)讀寫(xiě)池
    <property name="readPool">slave01</property>

bin/launcher :

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

launcher 是啟動(dòng)腳本,如果不配置JAVA_HOME的話,即便你在/etc/profile中配置了環(huán)境變量也可能會(huì)報(bào)錯(cuò):沒(méi)有配置jdk環(huán)境變量;

還有一個(gè)配置文件: jvm.properties

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

有經(jīng)驗(yàn)的運(yùn)維都知道,凡是和jdk沾上邊的,基本都會(huì)和內(nèi)存的調(diào)優(yōu)有關(guān)系,amoeba也不例外;

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

啟動(dòng)后就可以看到本機(jī)的8066端口:


這時(shí),你只需要通過(guò)本機(jī)ip的8066端口和你配置文件中設(shè)置的賬號(hào)密碼來(lái)連接數(shù)據(jù)庫(kù)就行了,寫(xiě)入的數(shù)據(jù)都會(huì)到master里,讀取的數(shù)據(jù)都會(huì)從slave中讀??;

測(cè)試:

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

或者

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

相關(guān)文章

  • 獲取缺失主鍵表信息的MYSQL語(yǔ)句

    獲取缺失主鍵表信息的MYSQL語(yǔ)句

    如何獲取缺失主鍵表信息,想必有些朋友還是不會(huì)的吧,下面為大家介紹下,可以通過(guò)幾條語(yǔ)句實(shí)現(xiàn),感興趣的朋友可以了解下
    2013-06-06
  • MySQL如何查詢客戶端連接情況

    MySQL如何查詢客戶端連接情況

    這篇文章主要介紹了MySQL如何查詢客戶端連接情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MySQL的雙寫(xiě)緩沖區(qū)Doublewrite Buffer詳解

    MySQL的雙寫(xiě)緩沖區(qū)Doublewrite Buffer詳解

    這篇文章主要介紹了MySQL的雙寫(xiě)緩沖區(qū)Doublewrite Buffer詳解,InnoDB是MySQL中一種常用的事務(wù)性存儲(chǔ)引擎,它具有很多優(yōu)秀的特性,其中,Doublewrite Buffer是InnoDB的一個(gè)重要特性之一,本文將介紹Doublewrite Buffer的原理和應(yīng)用,需要的朋友可以參考下
    2023-07-07
  • 如何修改MYSQL5.7.17數(shù)據(jù)庫(kù)存儲(chǔ)文件的路徑

    如何修改MYSQL5.7.17數(shù)據(jù)庫(kù)存儲(chǔ)文件的路徑

    在搭建華為云服務(wù)器的時(shí)候遇到點(diǎn)問(wèn)題,查看了網(wǎng)上好多的帖子都沒(méi)能解決,不知道有沒(méi)有跟我遇到一樣問(wèn)題的老鐵,我就把我的解決辦法分享給大家,希望能夠幫助各位老鐵
    2023-05-05
  • ?MySQL中?between and的基本用法?操作方法

    ?MySQL中?between and的基本用法?操作方法

    本文主要介紹了MySQL中BETWEEN AND操作符的基本用法,包括數(shù)值查詢和時(shí)間范圍查詢,同時(shí)還詳細(xì)解釋了NOT BETWEEN AND的使用方法,并通過(guò)實(shí)例進(jìn)行了詳細(xì)的演示,其中,BETWEEN AND可以用于數(shù)值、日期等類型的字段,包括邊界值
    2024-10-10
  • MySQL全文索引在數(shù)據(jù)庫(kù)中的應(yīng)用和優(yōu)勢(shì)(模糊查詢不用like+%)

    MySQL全文索引在數(shù)據(jù)庫(kù)中的應(yīng)用和優(yōu)勢(shì)(模糊查詢不用like+%)

    全文索引技術(shù)可以有效地從大量文本中檢索信息,適用于搜索引擎和電商平臺(tái)等場(chǎng)景,InnoDB從MySQL5.6開(kāi)始支持全文索引,使用倒排索引實(shí)現(xiàn),全文檢索分為自然語(yǔ)言搜索、布爾搜索和查詢擴(kuò)展搜索三種模式,全文索引提高了模糊查詢的效率,優(yōu)化了基于文本的搜索查詢
    2024-09-09
  • phpmyadmin報(bào)錯(cuò):#2003 無(wú)法登錄 MySQL服務(wù)器的解決方法

    phpmyadmin報(bào)錯(cuò):#2003 無(wú)法登錄 MySQL服務(wù)器的解決方法

    通過(guò)phpmyadmin連接mysql數(shù)據(jù)庫(kù)時(shí)提示:“2003 無(wú)法登錄 MySQL服務(wù)器”。。。很明顯這是沒(méi)有啟動(dòng)mysql服務(wù),右擊我的電腦-管理-找到服務(wù),找到mysql啟動(dòng)一下
    2012-04-04
  • MySQL中給自定義的字段查詢結(jié)果添加排名的方法

    MySQL中給自定義的字段查詢結(jié)果添加排名的方法

    這篇文章主要介紹了MySQL中給自定義的字段查詢結(jié)果添加排名的方法,只需要對(duì)counter寫(xiě)一個(gè)小算式,非常簡(jiǎn)單,需要的朋友可以參考下
    2015-06-06
  • mysql中時(shí)間字段設(shè)置遇到的問(wèn)題

    mysql中時(shí)間字段設(shè)置遇到的問(wèn)題

    這篇文章主要介紹了mysql中時(shí)間字段設(shè)置遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL 格式化時(shí)間的實(shí)現(xiàn)示例

    MySQL 格式化時(shí)間的實(shí)現(xiàn)示例

    MySQL提供了多種日期和時(shí)間類型,在處理時(shí)間時(shí)需要根據(jù)不同類型選擇不同的格式化方法,常用的日期類型有DATE、YEAR、TIME;常用的日期時(shí)間類型有DATETIME和TIMESTAMP,本文就來(lái)介紹一下MySQL 格式化時(shí)間,感興趣的可以了解一下
    2023-10-10

最新評(píng)論

甘南县| 沅江市| 扶沟县| 仁布县| 新宁县| 莫力| 隆林| 丹寨县| 清苑县| 久治县| 九寨沟县| 白山市| 宝清县| 湖南省| 榆树市| 灵丘县| 琼结县| 周宁县| 靖远县| 德保县| 磴口县| 郸城县| 三亚市| 永和县| 新建县| 海宁市| 屏山县| 奉新县| 墨脱县| 衡阳市| 米易县| 贵南县| 山阴县| 侯马市| 定西市| 灵丘县| 江安县| 盘山县| 嘉定区| 万全县| 安龙县|