MySQL Proxy

架構圖

WX20171113-131232@2x.png

介紹

  1. 處于client端和MySQL server端之間的應用
  2. 可以監(jiān)測歉铝、分析或改變它們的通信
  3. 使用靈活盈简,沒有限制,常見的用途包括:負載平衡太示,故障柠贤、查詢分析,查詢過濾和修改等等

MySQL-Proxy就是這么一個中間層代理先匪,簡單的說种吸,MySQL-Proxy就是一個連接池弃衍,負責將前臺應用的連接請求轉發(fā)給后臺的數據庫呀非,
并且通過使用lua腳本,可以實現(xiàn)復雜的連接控制和過濾镜盯,從而實現(xiàn)讀寫分離和負載平衡岸裙。對于應用來說,MySQL-Proxy是完全透明的速缆,應用則只需要連接到MySQL-Proxy的監(jiān)聽端口即可降允。當然,這樣proxy機器可能成為單點失效艺糜,但完全可以使用多個proxy機器做為冗
余剧董,在應用服務器的連接池配置中配置到多個proxy的連接參數即可。

缺點

  1. 通過lua腳本實現(xiàn)的讀寫分離破停,不太穩(wěn)定翅楼,官網不建議用

    MySQL Proxy is not GA, and is not recommended for Production use. 
    
  2. 還處于 alpha 版本

配置方法

基于 Docker

環(huán)境描述:

  • 操作系統(tǒng):Ubuntu 14.04
  • master 寫服務器:172.17.0.4
  • slave 讀服務器:172.17.0.5
  • 調度服務器MySQL-Proxy:172.17.0.6

1. MySQL 主從復制

參考《Amoeba for MySQL》

2. MySQL-Proxy 配置

  1. 安裝 mysql-proxy

    • 下載:mysqp-proxy

    • 解壓到指定目錄

      tar -zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
      mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit /usr/local/mysql-proxy
      
  1. 配置 mysql-proxy

    • 執(zhí)行命令

      cd /usr/local/mysql-proxy
      mkdir lua #創(chuàng)建腳本存放目錄
      mkdir logs #創(chuàng)建日志目錄
      cp share/doc/mysql-proxy/rw-splitting.lua ./lua #復制讀寫分離配置文件
      cp share/doc/mysql-proxy/admin-sql.lua ./lua #復制管理腳本
      
    • 配置文件

      創(chuàng)建配置文件 /etc/mysql-proxy.cnf

      [mysql-proxy]
      user        = root      #運行mysql-proxy用戶
      admin-username  = proxy #主從mysql共有的用戶
      admin-password  = 123456    #用戶的密碼
      proxy-address   = 172.17.0.6:4000   #mysql-proxy運行ip和端口,不加端口真慢,默認4040
      proxy-read-only-backend-addresses   = 172.17.0.5    #指定后端從slave讀取數據
      proxy-backend-addresses         = 172.17.0.4    #指定后端主master寫入數據
      proxy-lua-script            = /usr/local/mysql-proxy/lua/rw-splitting.lua   #指定讀寫分離配置文件位置
      admin-lua-script            = /usr/local/mysql-proxy/lua/admin-sql.lua  #指定管理腳本
      log-file                = /usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置
      log-level               = info  #定義log日志級別毅臊,由高到低分別有(error|warning|info|message|debug)
      daemon                  = true  #以守護進程方式運行
      keepalive               = true #mysql-proxy崩潰時,嘗試重啟
      

      然后設置 mysql-proxy.cnf 權限: chmod 660 /etc/mysql-porxy.cnf

  1. 配置讀寫分離腳本

    vi /usr/local/mysql-proxy/lua/rw-splitting.lua

    if not proxy.global.config.rwsplit then
     proxy.global.config.rwsplit = {
      min_idle_connections = 1, #默認超過4個連接數時黑界,才開始讀寫分離管嬉,改為1
      max_idle_connections = 1, #默認8,改為1
      is_debug = false
     }
    end
    

    方便測試

  2. 啟動 mysql-proxy

    /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf
    

    驗證是否啟動:

    netstat -tupln | grep 4000
    

    關閉命令:

    killall -9 mysql-proxy
    
  3. 創(chuàng)建用戶

    • 在主服務器創(chuàng)建proxy用戶用于mysql-proxy使用朗鸠,從服務器也會同步這個操作
    mysql> CREATE USER proxy;
    mysql> GRANT ALL ON *.* TO proxy IDENTIFIED BY '123456';
    
  4. 測試讀寫分離

    1. 先暫時停掉主從復制
    2. 在 master 節(jié)點插入數據蚯撩,然后通過 mysql-proxy 查詢
    3. 在 slave 節(jié)點插入數據,然后通過 mysql-proxy 查詢
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末烛占,一起剝皮案震驚了整個濱河市胎挎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖呀癣,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件美浦,死亡現(xiàn)場離奇詭異,居然都是意外死亡项栏,警方通過查閱死者的電腦和手機浦辨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沼沈,“玉大人流酬,你說我怎么就攤上這事×辛恚” “怎么了芽腾?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長页衙。 經常有香客問我摊滔,道長,這世上最難降的妖魔是什么店乐? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任艰躺,我火速辦了婚禮,結果婚禮上眨八,老公的妹妹穿的比我還像新娘腺兴。我一直安慰自己,他們只是感情好廉侧,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布页响。 她就那樣靜靜地躺著,像睡著了一般段誊。 火紅的嫁衣襯著肌膚如雪闰蚕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天枕扫,我揣著相機與錄音陪腌,去河邊找鬼。 笑死烟瞧,一個胖子當著我的面吹牛诗鸭,可吹牛的內容都是我干的。 我是一名探鬼主播参滴,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼强岸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了砾赔?” 一聲冷哼從身側響起蝌箍,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤青灼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后妓盲,有當地人在樹林里發(fā)現(xiàn)了一具尸體杂拨,經...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年悯衬,在試婚紗的時候發(fā)現(xiàn)自己被綠了弹沽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡筋粗,死狀恐怖策橘,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情娜亿,我是刑警寧澤丽已,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站买决,受9級特大地震影響沛婴,放射性物質發(fā)生泄漏。R本人自食惡果不足惜策州,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一瘸味、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧够挂,春花似錦、人聲如沸藕夫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毅贮。三九已至办悟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滩褥,已是汗流浹背病蛉。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瑰煎,地道東北人铺然。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像酒甸,于是被迫代替她去往敵國和親魄健。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內容