1、集群搭建
轉載:https://blog.51cto.com/11134648/2155934
2、集群類型
集群分為普通模式和鏡像模式


元數據包含一下內容:
隊列元數據:隊列名稱及屬性。
交換器:交換器名稱及屬性。
綁定關系元數據:交換器與隊列或者交換器與交換器。
vhost元數據:為vhost內的隊列、交換器和綁定提供命名空間及安全屬性之間的綁定關系。








3、常用命令
#查看節點狀態 rabbitmqctl status #停止運行rabbitmq的erlang虛擬機和rabbitmq服務應用 #如果指定了pid_file,還需要等待指定進程的結束。pid_file是通過調用 #rabbitmq-server命令啟動rabbitmq服務時創建的,默認情況下存放於 #Mnesia目錄中。若使用rabbitmq-sever-detach這個帶有-detach后綴 #的命令來啟動rabbitmq服務則不會生成pid-file文件。 rabbitmqctl stop [pid_file] #停止rabbitmq服務應用,但是erlang虛擬機還處於運行狀態。此命令 #的執行優先於其它管理操作(這些管理操作需要先停止rabbitmq應用), #比如rabbitmqctl reset rabbitmqctl stop_app #將rabbitmq節點還原到最初狀態。 #包括從原來所在集群中刪除此節點,從管理數據庫中刪除所有的配置數 #據,如已經配置的用戶,vhost等,以及刪除所有的持久化消息。 #執行rabbitmq reset命令前必須停止rabbitmq應用(比如先執行rabbitmqctl stop_app) rabbitmqctl reset #強制將rabbitmq節點重置還原到最初狀態。此命令不論當前管理數據庫 #的狀態和集群配置是什么,都會無條件地重置節點,只能在數據庫或集群 #配置已經損壞的情況下使用 rabbitmqctl force_reset #將節點加入到指定集群中。在這個命令執行簽需要停止rabbitmq應用並重#置節點 rabbitmqctl [-n nodename] join_cluster {cluster_node}[--ram] -n nodename:指定需要操作的目標節點,例如:rabbit@node1 cluster_node:需要加入的集群節點名稱,格式同上 --ram:集群節點類型,有兩種:ram|disc,默認disc (ram:內存節點,所有的元數據都存儲在內存中;disc:磁盤節點,所有的元數據都存儲在磁盤中) #查看集群狀態 rabbitmqctl cluster_status #修改集群節點類型,使用此命令前要停止rabbitmq應用 rabbitmqctl change_cluster_node_type {disc|ram} node_name #將節點重集群中刪除,允許離線執行 rabbitmqctl forget_cluster_node [--offiine] #在集群中的節點應用啟動前咨詢clusternode節點的最新信息,並更新 #相應的集群信息。這個和join_cluster不同,他不加入集群 rabbitmqctl update_cluster_nodes {clusternode} #確保節點可以啟動,即使他不是最后一個關閉的節點 rabbitmqctl force_boot (集群中的節點相繼宕機,如果要恢復之前的集群,則需要按照節點宕機的先后順序,從后向前啟動節點,因為最后宕機的節點數據最完善) #設置集群名稱。集群名稱在客戶端連接的時候回通報給客戶端。 #集群名稱默認是集群中第一個節點的名稱 rabbitmqctl set_cluster_name {name}
