負載均衡集羣,Haproxy

 

對於雙主狀況,能夠實現負載均衡 和 故障轉移;可是 對於一主多從的狀況,主掛掉了,選舉功能 無法實現;linux

 

認識HaProxy:(性能中等)redis

        基於TCP協議的,代理MySql;所須要的機器不那麼多;sql

Nginx:(性能最低)服務器

        基於Http協議的,只能代理Web應用負載均衡

LVS:(性能最高)socket

        Linux的虛擬服務,缺點:須要的機器很是多,可配置性 不高tcp

 

Haproxy的安裝:性能

1,下載地址:https://www.tapd.cn/22121161/documents/show/1122121161001000014spa

2,建立用戶名和密碼(全部的Mysql節點上都須要一個通用的用戶名和密碼),並賦予權限;.net

3,安裝haproxy:

        tar -zxvf haproxy-1.7.3.tar.gz

         cd haproxy-1.7.3

         make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy

        ## 參數說明
        ##TARGET=linux26 #內核版本,使用uname -r查看內核,

            如:2.6.18-371.el5,此時該參數就爲        linux26;內核大於2.6.28的用:TARGET=linux2628
        ## ARCH=x86_64 #系統位數
        ## PREFIX=/usr/local/haprpxy #/usr/local/haprpxy爲haprpxy安裝路徑

         make install PREFIX=/usr/local/haproxy

4.建立haproxy.cfg文件

         mkdir /usr/local/haproxy/etc
         vi /usr/local/haproxy/etc/haproxy.cfg

所添加的內容:

    
global
        daemon # 後臺方式運行
        nbproc 1
        pidfile /usr/local/haproxy/etc/haproxy.pid
defaults
        mode tcp      #默認的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK
        retries 2     #兩次鏈接失敗就認爲是服務器不可用,也能夠經過後面設置
        option redispatch   #當serverId對應的服務器掛掉後,強制定向到其餘健康的服務器
        option abortonclose   #當服務器負載很高的時候,自動結束掉當前隊列處理比較久的連接
        maxconn 4096     #默認的最大鏈接數
        timeout connect 5000ms   #鏈接超時
        timeout client 30000ms   #客戶端超時
        timeout server 30000ms   #服務器超時
        #timeout check 2000      #=心跳檢測超時
        log 127.0.0.1 local0 err  #[err warning info debug]

########test1配置#################
listen test1     #這裏是配置負載均衡,test1是名字,能夠任意
        bind 0.0.0.0:3306    #這裏是監聽的IP地址和端口,端口號能夠在0-65535之間,要避免端口衝突
        mode tcp   #鏈接的協議,這裏是tcp協議
        #maxconn  4086
        #log 127.0.0.1  local0  debug
        server s1 47.98.172.198:3306  #負載的機器
        server s2 47.97.121.246:3306  #負載的機器,負載的機器能夠有多個,往下排列便可

 

5,在/usr/local/haproxy/etc 目錄下【和haproxy.cfg文件中的屬性pidfile 一致】建立 haproxy.pid文件,並設置值:

        echo  1 > haproxy.pid

 

6,啓動haproxy:

         ../sbin/haproxy -f    /usr/local/haproxy/etc/haproxy.cfg

 

特別注意:

        若是在配置文件 haproxy.cfg 中配置了 bind 47.98.172.198:3306  ,指定 了具體的ip,容易出一下問題:

        Starting proxy test1: cannot bind socket [47.98.172.198:3307]

        解決辦法:把具體的ip換成:  0.0.0.0

參考網址:https://blog.csdn.net/xuxile/article/details/78871380

相關文章
相關標籤/搜索