RabbitMQ 集群+負載均衡


轉自:https://www.cnblogs.com/LiangSW/p/6243196.html

負載均衡

集群的配置已經搭建好了,代碼也成功跑通,成功做到了高可用,但是我們的程序連接節點並不會管哪個服務器在忙、哪個服務器空閑,完全看心情想連誰就連誰。而且代碼中要把每個ip的節點都手動的寫出來 ,既然是手動的就很有可能發現寫錯這種情況,同樣WEB UI 通常也不知道打開哪個好,因為每個服務器都有一個 WEB UI,可能有人說,既然哪個都行,你隨便打開一個就是了。但是如果不巧這個服務器后面崩了呢。

基於以前問題,我們就需要一個強大的負載均衡服務器來幫助我們完成這些事情。

這里選擇使用 haproxy,看官們可以根據心情來選擇自己想要的

這里記一個坑,博主之前想用windows系統做負載均衡服務器,但是實驗的時候總是會出錯,換到linux后,發現高版本的haproxy不可用!試了幾次 1.5.8是可以成功的。

准備工作就是 下載 haproxy,然后在linux下安裝

make TARGET=linux26 PREFIX=/usr/local/haproxy           #將haproxy安裝到/usr/local/haproxy

make install PREFIX=/usr/local/haproxy

然后把haproxy.cfg拷貝到安裝目錄下sbin文件夾中,這里我做了一些配置。包括對WEB UI與集群的負載均衡

復制代碼
global
    log    127.0.0.1 local0
#    log    127.0.0.1 local1
    maxconn    4000
    ulimit-n 8000
    uid    0
    gid    0
#    chroot    /tmp
#    nbproc    2
#    daemon
#    debug
#    quiet
linsten rabbitm1_admin 0.0.0.0 35672
   bind 0.0.0.0:35672
   server rabbitmq1 ip1:15672
   server rabbitm12 ip2:15672
 
listen rabbitmq_local_cluster 0.0.0.0:25672
    #配置TCP模式
    mode tcp
    option tcplog
    #簡單的輪詢
    balance roundrobin
    #rabbitmq集群節點配置
    server rabbitmq1 ip1:5672 check inter 5000 rise 2 fall 2
    server rabbitmq2 ip2:5672 check inter 5000 rise 2 fall 2##服務器定義(check指健康狀況檢查,inter 2000指檢測頻率;rise 2指從離線狀態轉換至正常狀態需要成功檢查的次數;fall 2指失敗2次即認為服務器不可用)

#配置haproxy web監控,查看統計信息
    listen private_monitoring :8100
    mode http
    option httplog
    stats enable
    #設置haproxy監控地址為http://localhost:8100/stats
    stats uri /stats
    stats refresh 30s
    #添加用戶名密碼認證
    stats auth admin:1234
復制代碼

 

這時就已經完成了,打開管理界面就可以看到我們所做的負載均衡了

image

 

這時使用負載均衡的服務器ip登錄 web ui 是不是很爽快,我們只需要關心負載均衡就可以了,后面到底有多少台機器不用去了解,ip也不用去記,就是這么暢快

image

同樣可以到代碼中去改變一下創建連接方式了,在這里只需要填寫負載均衡服務器的ip就可以了,然后port為配置文件中的port

復制代碼
var factory = new ConnectionFactory()
            {
                HostName = "192.168.1.117",
                UserName = "admin",
                Password = "admin",
                AutomaticRecoveryEnabled = true,
                TopologyRecoveryEnabled = true,
                Port = 25672

            };
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM