由於某些因素的限制,機器不夠你不得不在一台機器上去搭建乙個rabbitmq集群,可以閱讀這篇部落格:《rabbitmq單機多例項集群搭建》。
1.安裝單機版的 教程:《linux下安裝rabbitmq》
注意:不同於單機多節點的情況,在多機環境,如果要在cluster集群內部署多個節點,需要注意兩個方面:
1)保證需要部署的這幾個節點在同乙個區域網內
2)需要有相同的erlang cookie,否則不能進行通訊,為保證cookie的完全一致,採用從乙個節點copy的方式,下面就會使用這種方式
2.要搭建集群,先將之前單機版中歷史記錄乾掉,刪除rabbitmq/var/lib/rabbitmq/mnesia下的所有內容。
3.分別在192.168.1.103 192.168.1.104 192.168.1.105節點上安裝rabbitmq server。
4.在瀏覽器訪問每乙個rabbitmq例項,是夠可以顯示登入頁面,如果顯示成功,繼續往下進行。
5.設定不同節點間同一認證的erlang cookie
將192.168.1.103上的rabbitmq/var/lib/rabbitmq/.erlang.cookie中的內容複製到192.168.1.104和192.168.1.105上的rabbitmq/var/lib/rabbitmq/.erlang.cookie檔案中, 即三颱伺服器必須具有相同的cookie,如果不相同的話,無法搭建集群
注意:如果我們使用解壓縮方式安裝部署的rabbitmq,那麼這個檔案會在$目錄下,也就是$home/.erlang.cookie。
如果我們使用rpm等安裝包方式進行安裝的,那麼這個檔案會在/var/lib/rabbitmq目錄下。
6.分別在三個節點的/etc/hosts下設定相同的配置資訊,然後重啟機器
192.168.1.103 rabbit1
192.168.1.104 rabbit2
192.168.1.105 rabbit3
重啟之後[root@localhost ~]# 改為[root@rabbit1 ~]# hostname就會生效
7.使用 -detached執行各節點
rabbitmq-server -detached
8.建立集群
1)rabbit1為主節點,另外兩個為從節點搭建,主節點不用動,只在兩個從節點執行如下命令,我這裡只舉乙個節點(rabbit2)的例子,rabbit3執行相同的命令
[root@rabbit2 rabbitmq]#
[root@rabbit2 rabbitmq]#
rabbitmqctl reset
resetting node rabbit@rabbit2 ...
[root@rabbit2 rabbitmq]#
rabbitmqctl join_cluster rabbit@rabbit1
clustering node rabbit@rabbit2 with rabbit@rabbit1 ...
[root@rabbit2 rabbitmq]#
starting node rabbit@rabbit2 ...
2)使用rabbitmqctl cluster_status檢視集群狀態
[root@rabbit2 rabbitmq]#
rabbitmqctl cluster_status
cluster status of node rabbit@rabbit2 ...},,
,,,]}]
9.我這裡建立完成之後,之前的admin使用者無法使用了,重新新增使用者,參考之前搭建單機版的命令
10.使用剛才的賬號密碼登入,出現以下介面,表示成功。
11.測試,生產者使用192.168.1.103:5672生產訊息,消費者使用192.168.1.104:5672獲取訊息,如果能獲取到表示集群搭建成功
producer類:
package com.rabbitmq.test.t_helloworld;
import com.rabbitmq.client.channel;
import com.rabbitmq.client.connection;
import com.rabbitmq.client.connectionfactory;
import com.rabbitmq.test.util.connectionutil;
/** * helloworld
* @author lenovo
* */
public class producer
}
consumer類:
package com.rabbitmq.test.t_helloworld;
import com.rabbitmq.client.channel;
import com.rabbitmq.client.connection;
import com.rabbitmq.client.connectionfactory;
import com.rabbitmq.client.queueingconsumer;
import com.rabbitmq.test.util.connectionutil;
public class consumer }}
rabbitmq單機多例項集群搭建
這裡展示的是單機集群的部署,如果機器足夠多,可以選擇多機集群部署,詳細可以參考 rabbitmq集群搭建 多機 1.安裝單機版的 教程 linux下安裝rabbitmq 2.要搭建集群,先將之前單機版中歷史記錄乾掉,刪除rabbitmq var lib rabbitmq mnesia下的所有內容。3...
搭建rabbitmq集群
訪問管理位址http ip 15672 使用guest使用者登入 1.配置hosts檔案 10.1.10.201 controller 10.1.10.105 rabbitmq01 10.1.10.106 rabbitmq02 2.採用從主節點copy的方式保持cookie的一致性 root con...
rabbitmq集群搭建
目錄rabbitmq是用erlang語言開發的,erlang語言最初用於交換機領域,這樣就使得rabbitmq和broker server 之間進行資料互動的效能是非常優秀的,erlang有著和原生socket一樣的延遲,集群非常方便,因為erlang天生就是分布式語言,但其本身不支援負載均衡。ra...