rabbitmq集群搭建


按照上一篇已經搭好兩個rabbitmq單實例,下面把兩台單實例組成集群

RabbitMQ集群是一個或幾個節點的邏輯分組,每個節點共享用戶,虛擬主機,隊列,交換,綁定,運行時參數和其他分布式狀態

bg:

兩台實驗機

關閉防火牆和selinux

node1 172.16.1.130 mycentos7

node2 172.16.1.79 wikbackup79

 

標識符

節點名稱,集群中的唯一標識符,兩部分組成,例如rabbit@mycentos7,rabbit默認的,mycentos7主機名,並且要能解析

分別在兩台pc編輯hosts

Erlang Cookie

CLI工具如何對節點(以及彼此之間的節點)進行身份驗證:Erlang Cookie

所以集群要保證/var/lib/rabbitmq/.erlang.cookie(默認)一致,把130的復制到79

 

開始創建集群

假設兩個節點都已經啟動

把node1和node2加入集群,在node2上操作

停止node2上的rabbitmq

$ rabbitmqctl stop_app

 

重置node2rabbitmq

$ rabbitmqctl reset

 

加入node1集群

$ rabbitmqctl join_cluster rabbit@mycentos7

 

啟動node2上的rabbitmq

$ rabbitmqctl start_app

 

在任意節點查看集群

$ rabbitmqctl cluster_status

按照以上步驟可以隨時添加新節點

 

有時需要刪除節點,步驟很簡單,兩種方式

主動方式,在被刪除節點操作

先停rabbitmq

$ rabbitmqctl stop_app

 

重置reset

$ rabbitmqctl reset

 

啟動rabbitmq

$ rabbitmqctl start_app

此時就是一個干凈的單實例rabbitmq

 

 被動方式,遠程操作,用於節點損壞無法響應

在活動節點,例如node1執行,前提是node2已經停止了rabbitmq(rabbitmqctl stop_app)

$  rabbitmqctl forget_cluster_node rabbit@wikbackup79

查看一下cluster status,發現去掉了node2

$ rabbitmqctl cluster_status

 

具有RAM節點的集群

RAM節點僅將元數據保留在內存中。由於RAM節點不必像磁盤節點那樣多地寫入磁盤,因此它們可以表現得更好。但是,請注意,由於持久隊列數據始終存儲在磁盤上,因此性能提高將僅影響資源管理(例如,添加/刪除隊列,交換或虛擬主機),而不會影響發布或消耗速度。

RAM節點是高級用例;在設置第一個集群時,您不應該使用它們。您應該有足夠的磁盤節點來滿足您的冗余要求,然后如有必要,添加其他RAM節點以進行擴展。

僅包含RAM節點的群集將非常易變。如果群集停止,您將無法再次啟動它,並且 將丟失所有數據RabbitMQ在許多情況下會阻止創建僅RAM節點的群集,但不能絕對阻止。

這里的示例顯示了一個群集,其中包含一個磁盤和一個RAM節點,僅出於簡化目的。這樣的集群是一個糟糕的設計選擇。

之前創建集群的命令加入--ram參數就是創建內存節點的命令

我們先在node2重置rabbitmq

$ rabbitmqctl stop_app

$ rabbitmqctl reset

創建一個內存節點

$ rabbitmqctl --ram join_cluster rabbit@mycentos7

$ rabbitmqctl start_app

$ rabbitmqctl cluster_status

 

 如果不加--ram參數默認是disc節點

通常我們使用默認即可,現在把剛剛創建的內存節點轉換成disc節點

$ rabbitmqctl stop_app (任何操作都要先停mq)

$ rabbitmqctl change_cluster_node_type disc

$ rabbitmqctl start_app

$ rabbitmqctl cluster_status

 

 

集群搭建完成

我們在node1和node2分新建一個隊列testQueue,testmq

 

 

 此時,我們把node2停掉,發現在node2上建的隊列testmq丟失了

 

 

下一篇,測試一下高可用,鏡像模式


免責聲明!

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



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