• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    用HAProxy來檢測MySQL復(fù)制的延遲的教程_MySQL

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 19:49:14
    文檔

    用HAProxy來檢測MySQL復(fù)制的延遲的教程_MySQL

    用HAProxy來檢測MySQL復(fù)制的延遲的教程_MySQL:在MySQL世界里,HAProxy 通常來作為軟件負(fù)載均衡器使用。彼得.博羅什在過去的郵件中解釋了如何使用percona xtradb集群(pxc)來對其設(shè)置。所以它只發(fā)送查詢到可應(yīng)用的節(jié)點(diǎn)。同樣的方法可用于常規(guī)主從設(shè)置來讀取負(fù)載并分散到多個從節(jié)點(diǎn)。不過,使用MySQL復(fù)
    推薦度:
    導(dǎo)讀用HAProxy來檢測MySQL復(fù)制的延遲的教程_MySQL:在MySQL世界里,HAProxy 通常來作為軟件負(fù)載均衡器使用。彼得.博羅什在過去的郵件中解釋了如何使用percona xtradb集群(pxc)來對其設(shè)置。所以它只發(fā)送查詢到可應(yīng)用的節(jié)點(diǎn)。同樣的方法可用于常規(guī)主從設(shè)置來讀取負(fù)載并分散到多個從節(jié)點(diǎn)。不過,使用MySQL復(fù)

    在MySQL世界里,HAProxy 通常來作為軟件負(fù)載均衡器使用。彼得.博羅什在過去的郵件中解釋了如何使用percona xtradb集群(pxc)來對其設(shè)置。所以它只發(fā)送查詢到可應(yīng)用的節(jié)點(diǎn)。同樣的方法可用于常規(guī)主從設(shè)置來讀取負(fù)載并分散到多個從節(jié)點(diǎn)。不過,使用MySQL復(fù)制,另一個因素開始發(fā)揮作用:復(fù)制延遲。在這種情況下,被提及到的 Percona xtraDB 集群以及我們提出只返回“向上”或者“向下”的檢查方法行不通。我們將希望依賴其復(fù)制延遲來調(diào)整內(nèi)部Haproxy的一個權(quán)重。這就是我們要做的在這篇文章中使用HAProxy 1.5。

    HAProxy的代理檢測


    HAProxy 1.5運(yùn)行我們運(yùn)行一個代理檢測,這是一項(xiàng)可以添加到常規(guī)健康檢測項(xiàng)的檢測。代理檢測的好處是返回值可以是‘up'或 ‘down',但也可以是個權(quán)重值。

    代理是什么呢?它是一個簡單的可以訪問給定端口上TCP連接的程。所以,如果我們要在一臺MySQL服務(wù)器上運(yùn)行代理,這需要:

  • 如果不運(yùn)行復(fù)制的話確保服務(wù)在HAProxy上是停止的
  • 如果復(fù)制延遲小于10s,設(shè)置weight為100%
  • 如果延遲大于等于10s,小于50s,設(shè)置weight為50%
  • 在其他情況下設(shè)置weight為5%

  • 我們可以使用這樣一個腳本:

    $ less agent.php
    = 10 && $lag < 60){
     return "up 50%";
     }
     else
     return "up 5%";
    }
    set_time_limit(0);
    $socket = stream_socket_server("tcp://127.0.0.1:$port", $errno, $errstr);
    if (!$socket) {
     echo "$errstr ($errno)
    n";
    } else {
     while ($conn = stream_socket_accept($socket,9999999999999)) {
     $cmd = "$mysql -h127.0.0.1 -u$user -p$password -P$mysql_port -Ee "$query" | grep Seconds_Behind_Master | cut -d ':' -f2 | tr -d ' '";
     exec("$cmd",$lag);
     $weight = set_weight($lag[0]);
     unset($lag);
     fputs ($conn, $weight);
     fclose ($conn);
     }
     fclose($socket);
    }
    ?>
    

    如果你希望腳本從端口6789發(fā)出連接到運(yùn)行在3306端口上的MySQL實(shí)例,這樣運(yùn)行:

    $ php agent.php 6789 3306
    

    你還需要指定MySQL用戶:

    mysql> GRANT REPLICATION CLIENT ON *.* TO 'haproxy'@'127.0.0.1' IDENTIFIED BY 'haproxy_pwd';
    

    代理啟動后,你可以檢測一下它是否正常運(yùn)行:

    # telnet 127.0.0.1 6789
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    up 100%
    Connection closed by foreign host.
    

    假設(shè)它運(yùn)行在本地的應(yīng)用服務(wù)器上,有兩個復(fù)制正在運(yùn)行(192.168.10.2和192.168.10.3),應(yīng)用的讀請求在3307端口,你需要在HAProxy中配置一個前端和后端,像這樣:

    代碼如下:


    frontend read_only-front
    bind *:3307
    mode tcp
    option tcplog
    log global
    default_backend read_only-back
    backend read_only-back
    mode tcp
    balance leastconn
    server slave1 192.168.10.2 weight 100 check agent-check agent-port 6789 inter 1000 rise 1 fall 1 on-marked-down shutdown-sessions
    server slave2 192.168.10.3 weight 100 check agent-check agent-port 6789 inter 1000 rise 1 fall 1 on-marked-down shutdown-sessions

    現(xiàn)在所有的都準(zhǔn)備好了,現(xiàn)在讓我們看看怎么使用HAProxy來動態(tài)的改變重滯服務(wù)器,代碼如下:

    代碼如下:


    # Slave1
    $ mysql -Ee "show slave status" | grep Seconds_Behind_Master
    Seconds_Behind_Master: 0
    # Slave2
    $ mysql -Ee "show slave status" | grep Seconds_Behind_Master
    Seconds_Behind_Master: 0
    # HAProxy
    $ echo "show stat" | socat stdio /run/haproxy/admin.sock | cut -d ',' -f1,2,18,19
    # pxname,svname,status,weight
    read_only-front,FRONTEND,OPEN,
    read_only-back,slave1,UP,100
    read_only-back,slave2,UP,100
    read_only-back,BACKEND,UP,200


    時延1

    代碼如下:


    # Slave1
    $ mysql -Ee "show slave status" | grep Seconds_Behind_Master
    Seconds_Behind_Master: 25
    # Slave2
    $ mysql -Ee "show slave status" | grep Seconds_Behind_Master
    Seconds_Behind_Master: 0
    # echo "show stat" | socat stdio /run/haproxy/admin.sock | cut -d ',' -f1,2,18,19
    # pxname,svname,status,weight
    read_only-front,FRONTEND,OPEN,
    read_only-back,slave1,UP,50
    read_only-back,slave2,UP,100
    read_only-back,BACKEND,UP,150


    時延2

    代碼如下:


    # Slave1
    $ mysql -Ee "show slave status" | grep Seconds_Behind_Master
    Seconds_Behind_Master: 0
    # Slave2
    $ mysql -Ee "show slave status" | grep Seconds_Behind_Master
    Seconds_Behind_Master: NULL
    # echo "show stat" | socat stdio /run/haproxy/admin.sock | cut -d ',' -f1,2,18,19
    # pxname,svname,status,weight
    read_only-front,FRONTEND,OPEN,
    read_only-back,slave1,UP,100
    read_only-back,slave2,DOWN (agent),100
    read_only-back,BACKEND,UP,100


    結(jié)論

    在HAProxy 1.5中代理檢查是一個很好的新增功能。 在上面的設(shè)置中是簡單的: 舉例來說, 如果 HAProxy 連接代理失敗,它就不會被標(biāo)記。 推薦與代理檢查一起,保持常規(guī)的健康度檢查。

    細(xì)心的讀取者們(reads)將會注意到這個配置,如果在所有節(jié)點(diǎn)上都被復(fù)制, HAProxy將會停止發(fā)送給讀取者. 這可能不是最好的解決方案。但可能的選項(xiàng)是:停止代理并標(biāo)記服務(wù)器為UP,使用狀態(tài)套接字(socket)或者添加主節(jié)點(diǎn)作為備份服務(wù)器。

    最后一點(diǎn),使用Percona工具集的pt-heartbeat替代Seconds_Behind_Master,您可以編輯代理的代碼,可以對復(fù)制的延遲進(jìn)行測量 。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    用HAProxy來檢測MySQL復(fù)制的延遲的教程_MySQL

    用HAProxy來檢測MySQL復(fù)制的延遲的教程_MySQL:在MySQL世界里,HAProxy 通常來作為軟件負(fù)載均衡器使用。彼得.博羅什在過去的郵件中解釋了如何使用percona xtradb集群(pxc)來對其設(shè)置。所以它只發(fā)送查詢到可應(yīng)用的節(jié)點(diǎn)。同樣的方法可用于常規(guī)主從設(shè)置來讀取負(fù)載并分散到多個從節(jié)點(diǎn)。不過,使用MySQL復(fù)
    推薦度:
    標(biāo)簽: php 延遲 ha
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 黑巨人与欧美精品一区 | 国内精品51视频在线观看| 国产内地精品毛片视频| 国产精品大白天新婚身材| 亚洲精品线路一在线观看| 国产精品自产拍高潮在线观看| 精品久久一区二区| 91老司机深夜福利精品视频在线观看 | 国产午夜精品一区理论片| 色婷婷在线精品国自产拍| 日韩视频中文字幕精品偷拍| 国产午夜精品一区二区| 97精品国产高清自在线看超| 精品国产污污免费网站| 91精品一区国产高清在线| 国产成人无码久久久精品一 | 99精品福利国产在线| 国内精品一级毛片免费看 | 国产欧美精品一区二区三区 | 久久99热国产这有精品| 国产亚洲精品精华液| 色妞ww精品视频7777| 亚洲国产精品无码中文字| 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 国产精品久久久久久久久久免费| 久久免费精品视频| 久久精品九九亚洲精品天堂| 国产亚洲精品国产| 精品亚洲永久免费精品| 精品999在线| 久久96国产精品久久久| 欧美精品免费观看二区| 日本精品久久久久中文字幕| 四虎成人精品免费影院| 桃花岛精品亚洲国产成人| 91午夜精品亚洲一区二区三区| 国产精品无码素人福利| 国产精品亚洲专区无码WEB| 精品人妻少妇嫩草AV无码专区| 久久精品国产精品亚洲艾草网美妙| 麻豆精品三级全部视频|