1. 程式人生 > >linux(deepin15.4)下部署叢集RabbitMQ訊息佇列映象模式(三)

linux(deepin15.4)下部署叢集RabbitMQ訊息佇列映象模式(三)

第三天

一、映象佇列策略
1、映象佇列可以防止主節點掛掉,整個佇列就癱瘓了。所以要想在主節點掛掉或故障也能正常應用,就要複製佇列內容到叢集裡的每個節點,須要建立映象佇列。

2、映象模式配置完成之後,會存在一個主節點和多個映象節點(或稱為熱備佇列,Slaves),主節點在收到訊息後,會同步訊息至當前所有的映象,若主節點訊息被處理刪除之後,映象節點的資料會同步刪除;

3、當主節點發生異常後,映象佇列中會有一個從節點自動升為主節點。當異常的主節點恢復後,會變為映象從節點
映象佇列是基於普通的叢集模式的,所以你還是得先配置普通叢集,然後才能設定映象佇列.

在建立好了普通的叢集模式後,在任一節點機器終端輸入命令:
命令:rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”}’
1、ha-all 是同步模式,指同步給所有節點,還有另外兩種模式ha-exactly表示在指定個數的節點上進行映象,節點的個數由ha-params指定,ha-nodes表示在指定的節點上進行映象,節點名稱通過ha-params指定;

2、^是匹配所有節點。

3、{“ha-mode”:”all”} 表示同步給所有,同步模式的不同,此引數也不同。

執行上面命令後,可以在web管理介面檢視queue 頁面,裡面hello2佇列的node節點後會出現+1標籤,表示有1個從節點,而主節點則是當前顯示的node(iz949a2mrc1z)
這裡寫圖片描述
這裡寫圖片描述
這裡我已經建立了hello2訊息佇列

二、7. 安裝並配置 HAProxy
在 節點機器 上安裝 HAProxy,然後修改 /etc/haproxy/haproxy.cfg:
在最下方新增如下:

listen rabbitmq_cluster            
bind:5672                                       
mode tcp                                       
balance roundrobin                  

server   節點機器1名稱 節點機器1IP:5672 check inter 2000 rise 2 fall 3  
server   節點機器2名稱 節點機器2IP:5672 check inter 2000 rise 2 fall 3

listen:套間字是指定監聽rabbitmq_cluster
bind:指定埠為5672
mode:指定模式為tcp連線
balance:負載均衡模式
check inter 2000是檢查該伺服器
rise 2 檢查兩次都成功,表示該伺服器可用
fall 3 檢查三次都失敗,該伺服器不可用

這裡寫圖片描述

———————————————————————

listen套間字繫結監聽埠

———————————————————————

listen admin_stats
stats enable #:web監聽可用
bind *:8099 #:web監聽埠號
mode http #:web監聽模式
option httplog
log global
maxconn 10 #:最大連線
stats refresh 30s #:重新整理時間30秒
stats realm haproxy
stats uri /admin #:web監聽地址
stats auth admin:admin123 #:web監聽使用者名稱與密碼
stats admin if TRUE #:web監聽可用
[

[email protected] ~]# service rabbitmq-server start

還可以這樣寫

frontend rabbitmq
     bind 127.3.3.3:8382
     default_backend   rabbitmq_server

backend rabbitmq_server
     mode http
     balance leastconn
     server  iZbp10c911n2z47alw0t4bZ 116.62.128.85:15672 check inter 5000 rise 2 fall 3    
     server  iZ949a2mrc1Z 112.74.86.122:15672 check inter 5000 rise 2 fall 3

這裡寫圖片描述

frontend是指定前端訪問
bind是IP
default_backend 是返回給後端,要與後端名字一樣

backend:接收前端的資訊,與前端返回的名字要相同
mode :訪問模式
balance:負載均衡