Linux rabbitmq服務安全配置(消息隊列 以集羣方式部署 Rabbitmq的負載均衡)

rabbitmq介紹

rabbitmq: 是一個消息中間件,主要提供消息的接受和發送,實現各微服務之間的消息 異步

一般以集羣方式部署

rabbitmq是依據erlang的分佈式特性來實現分佈式集羣

部署rabbitmq分佈式集羣時要先安裝erlang, 並把其中-個服務的cookie複製到另外的 節點

rabbitmq集羣中,各個rabbitmq爲對等節點,即每個節點均提供給客戶端連接,進行 消息的接收和發送。節點分爲內存節點和磁盤節點,一般的,均應建立爲磁盤節點,爲 了防止機器重啓後的消息消失

 

Rabbitmq的cluster集羣模式一般分爲兩種

普通模式

鏡像模式

 

普通模式下  以兩個節點(rabbit01、rabbit02) 爲例

消息實體只存在於其中一個節點rabbit01 (或者rabbit02)

rabbit01和rabbit02兩個節點僅有相同的元數據,即隊列的結構

consumer應儘量連接每一個節點,從中取消息(否則無論consumer連rabbit01或rabbit02, 出口總在rabbit01,會產生瓶頸)

 

鏡像模式

消息隊列通過rabbitmq HA鏡像隊列進行消息隊列實體複製

將需要消費的隊列變爲鏡像隊列,存在於多個節點,以實現RabbitMQ的HA高可用性

消息實體會主動在鏡像節點之間實現同步

缺點就是,集羣內部的同步通訊會佔用大量的網絡帶寬

 

環境要求

多個節點需要在同一個局域網內

需要有相同的erlang cookie 否則不能正常通信

(cookie內容一致性 可採用scp的方式進行拷貝複製)

 

環境介紹

node1    192.168.12.10

node2    192.168.12.11

node3    192.168.12.12

 

三臺機子的基礎配置

RabbitNode1固定IP配置

 

 

 

RabbitNode2固定IP配置 拷貝壓縮包文件

 

RabbitNode3固定IP配置 拷貝壓縮包文件

 

配置/etc/hosts文件

 

配置hostname

 

配置yum

 

安裝erlang依賴包

 

編譯安裝

 

 

讓環境變量立即生效 退出當前終端後失效

 

驗證是否成功

 

安裝rabbitmq(3個主機)

編譯安裝

 

導入rabbitmq的管理界面(3個機子)

 

設置erlang(保證集羣內的cookie內容一致)

編譯安裝:$HOME/.erlang.cookie

rpm安裝:/var/lib/rabbitmq/.erlang.cookie

將 node1 的“.erlang.cookie”文件複製到 node2、node3 文件的權限爲 400

 

使用-detached參數運行各節點(3個機子)

 

建立管理用戶

添加用戶並設置密碼(guest用戶 只能在本地訪問)

 

添加權限(使admin用戶對虛擬主機”/”具有權限)

 

修改用戶角色(加入administrator用戶組)

 

遠程訪問 用戶名admin 密碼123456

 

組成集羣

將node2、node3 與node1組成集羣

1   停止應用 並將節點設置爲原始狀態(勿使用./rabbitmqctl stop)

 

2   重複上述操作 加入node1的集羣

 

3   node2 與node3自動建立連接 集羣配置完畢

4   查看羣集節點狀態(在任意節點上執行)

 

在web頁面上查看(node3爲黃色 由於該節點上web管理插件還未啓用)

 

在node3上啓動

 

設置鏡像隊列策略(在任意節點上執行)

web頁方式

 

命令方式

rabbitmqctl set_policy -p coresystem  ha-all “^” '{"ha-mode":"all"}’

coresystem 虛擬主機名稱

ha-all 策略名稱

"^"匹配所有的隊列

‘{“ha-mode”:“all”}’策略模式  all (即複製到所有節點,包含新增節點)

虛擬主機的作用

做一個消息的隔離

本質是一個rabbitmq-server

是否增加虛擬主機,增加幾個,這是由開發中的業務決定(即有哪幾類服務,哪些 服務用哪一個虛擬主機,這是一個規劃)

 

配置Rabbitmq的負載均衡功能(通過Haproxy軟件實現負載均衡功能)

安裝、配置Haproxy

 

建立配置文件haproxy.cfg

 

創建啓動腳本

 

啓動腳本權限不夠 增加權限

 

重新啓動報錯 沒有用戶和組 添加用戶haproxy 其餘報錯是因爲少打了個空格

 

再次啓動還是失敗 由於haproxy沒有得到VIP,但是配置文件又綁定了VIP地址

 

修改內核參數 增加一條語句 啓動haproxy的時候,允許忽視VIP的存在

 

保存結果使結果生效

 

再次啓動又報錯 丟失/var/lib/haproxy/stats

 

創建文件

 

重啓腳本 終於成功

 

測試羣集負載均衡功能

 

停止node3的網卡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章