RabbitMQ-rabbitmqctl多機多節點和單機多節點集群搭建(五)


准備

  1.准備3台物理機 我這里通過本地機和2台虛擬模擬我是mac通過(Parallel Desktop 實現)

      

    2.按照簽名的liux安裝步驟在3台機器都安裝rabiitMq

    3.將任意一節點的cookie復制到其他2台保證一致 cookie路徑為$HOME/.erlang.cookie 可以通過echo $HOME 查看環境變量值

     

  注:如果提示只讀  1.ctrl+c退出 執行sudo!!  2.執行 vim 修改文件 3.保存加上!強制執行 :wq!

 4.修改每台機器的host映射保證根據映射能相互ping通

 

5.守護進程啟動三台mq  

./rabbitmq-server -detached

6.檢查啟動狀態

./rabbitmqctl cluster_status

7.如果啟動成功如下圖 我這里是已經加入集群了 所以看到三個節點 未加入集群就只能看到當前節點

8.分別在node2和node3自行加入集群節點(因為是同級的所以順序沒關系 可以是在node1 node3 執行加入node2)

rabbitmqctl stop_app 

rabbitmqctl join_cluster rabbit@node1

rabbitmqctl start_app

 

9.然后通過任意節點執行./rabbitmqctl cluster_status就可以看到7那個圖

10.需要注意 如果通過stop_app節點全部關閉 第一個啟動節點需要是最后關閉的那個節點 其他節點啟動都會等待它啟動成功 超時會報錯 

如:我一次關閉節點1 節點2 節點3

然后我啟動節點2

會處於等待狀態 會一致等待node2

如果node2 由於某種情況無法啟動 可以通過以下方式

方式1:

./rabbitmqctl forget_cluster_node rabbit@node3 -offline (測試過不行)

方式2(推薦):

在node2執行

./rabbitmqctl reset (測試過 也不行 會等待)

將重置集群 所有節點都成為一個獨立節點

 

集群節點類型

1.通過./rabbitmqctl cluster_status

disc表示磁盤類型  保證隊列、交換器、綁定關系、用戶、權限、和vhost都會保存到磁盤 重啟不會丟失

2.加入集群時可以通過指定為內存類型(部分節點使用內存類型保證最佳性能)

rabbitmqctl stop_app 

rabbitmqctl join_cluster rabbit@node1 --ram

rabbitmqctl start_app

 

3.如果集群已經搭建好了可以通過以下命令進行切換

 ./rabbitmqctl stop_app

./rabbitmqctl change_cluster_node_type ram

./rabbitmqctl start_app

注意點

rabbitMQ中 在集群中創建隊列、交換器、或者綁定關系 需要所有集群中的節點都提交成功才會返回 這意味着都是磁盤節點寫入磁盤操作是昂貴的

在內存節點提供高昂的性能磁盤節點提供可靠性 如何做抉擇

rabbitMQ保證集群中至少一個集群節點 如果節點變更都會至少通知一個磁盤節點,如果磁盤節點掛了那么將不能添加元數據信息,所以我們再集群匯總至少保證2~3個磁盤節點其他都是內存節點

剔除節點

節點運行中

比如要剔除node3

1.在node3執行

./rabbitmqctl stop_app

 

2.集群中任意節點執行

 

./rabbitmqctl forget_cluster_node rabbit@node3

可以看到node3不存在了成功剔除

集群節點升級

思路描述 具體看書162頁 大概是將新版本mq的數據路徑指向老版本

一台機器部署多個節點

方便測試和驗證集群特性 書163頁

mq日志查看

書165頁 不過跟當前版本不一致 日志文件路徑再 rabbithome的var目錄下

在打開rabbitMQ之前 可以他開一個新的窗口 tail -f 日志文件-n 200 查看實時每個操作日志是什么 久而久之就熟悉了

如果日志文件太大可以進行手動切分 如:./rabbitmqctl rotate_logs 01 

后續日志則會記錄在.01的文件里面(或者通過Liunx cronta 定時任務 每天切分)

可以通過創建mq相應交換器 日志信息會投遞到對應的交換器綁定的對應隊列 我們通過程序消費解析 通過程序查看 書:170頁


免責聲明!

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



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