1. 程式人生 > >在windows環境中單機搭建rabbitmq叢集

在windows環境中單機搭建rabbitmq叢集

建議單機版叢集僅作為學習使用,生產環境最好使用多伺服器叢集來避免單點故障帶來的服務不可用,必竟單機版的集是偽叢集。

1:準備基礎檔案、環境變數

  設定環境變數:

  變數名:RABBITMQ_BASE

  變數值:C:\Program Files\RabbitMQ Server(例:這個是安裝目錄的前半部分,我的安裝目錄是:C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5)

      

  準備多節點需要檔案

windows環境下對應的bat檔案在安裝目錄下的sbin資料夾下

次用2個節點來建單機叢集所以對就的檔案命名我們在對應的檔名加node1,node2來區分,這樣便於後面的管理更清晰。

分別複製2份下面對應的檔案

rabbitmq-server.bat:分別重新命名為rabbitmqctl-node1.bat,rabbitmqctl-node2.bat

rabbitmqctl.bat:分別重新命名為rabbitmqctl-node1.bat,rabbitmqctl-node2.bat

rabbitmq-env.bat:分別重新命名為rabbitmq-env-node1.bat,rabbitmq-env-node2.bat

rabbitmq-plugins.bat:分別重新命名為rabbitmq-plugins-node1.bat,rabbitmq-plugins-node2.bat

準備配置檔案(配置檔案在安裝目錄的etc資料夾下):

複製rabbitmq.config.example2份,並分別重新命名為:rabbitmq-node1.config,rabbitmq-node2.config

2:基礎檔案準備完畢進行對應檔案的修改:

修改rabbitmq-node1.config

在{rabbitmq_management下找到

%% {listener, [{port, 12345}, %% {ip, "127.0.0.1"}, %% {ssl, true}, %% {ssl_opts, [{cacertfile, "/path/to/cacert.pem"}, %% {certfile, "/path/to/cert.pem"}, %% {keyfile, "/path/to/key.pem"}]}]},

改成:{listener, [{port, 15673},{ip, "127.0.0.1"},{ssl, false}]}

修改rabbitmq-node2.config

在{rabbitmq_management下找到

%% {listener, [{port, 12345}, %% {ip, "127.0.0.1"}, %% {ssl, true}, %% {ssl_opts, [{cacertfile, "/path/to/cacert.pem"}, %% {certfile, "/path/to/cert.pem"}, %% {keyfile, "/path/to/key.pem"}]}]},

改成:{listener, [{port, 15675},{ip, "127.0.0.1"},{ssl, false}]}

修改rabbitmq-env-node1.bat

在開頭大概16行左右新增

set RABBITMQ_CONFIG_FILE=!RABBITMQ_HOME!\etc\rabbitmq-node1
set RABBITMQ_BASE=!RABBITMQ_BASE!\rabbitmq-cluster
set [email protected]
set RABBITMQ_NODE_PORT=5673
set RABBITMQ_DIST_PORT=16671

修改rabbitmq-server-node1.bat

call "%TDP0%/rabbitmq-env.bat" %~n0 修改為 call "%TDP0%/rabbitmq-env-node1.bat" %~n0

修改rabbitmqctl-node1.bat

call "%TDP0%/rabbitmq-env.bat" %~n0 修改為 call "%TDP0%/rabbitmq-env-node1.bat" %~n0

修改rabbitmq-plugins-node1.bat

call "%TDP0%/rabbitmq-env.bat" %~n0 修改為 call "%TDP0%/rabbitmq-env-node1.bat" %~n0

修改rabbitmq-env-node2.bat

在開頭大概16行左右新增

set RABBITMQ_CONFIG_FILE=!RABBITMQ_HOME!\etc\rabbitmq-node2
set RABBITMQ_BASE=!RABBITMQ_BASE!\rabbitmq-cluster
set [email protected]
set RABBITMQ_NODE_PORT=5675
set RABBITMQ_DIST_PORT=16673

修改rabbitmq-server-node2.bat

call "%TDP0%/rabbitmq-env.bat" %~n0 修改為 call "%TDP0%/rabbitmq-env-node2.bat" %~n0

修改rabbitmqctl-node2.bat

call "%TDP0%/rabbitmq-env.bat" %~n0 修改為 call "%TDP0%/rabbitmq-env-node2.bat" %~n0

修改rabbitmq-plugins-node2.bat

call "%TDP0%/rabbitmq-env.bat" %~n0 修改為 call "%TDP0%/rabbitmq-env-node2.bat" %~n0

3:啟動server:

rabbitmq-server-node1.bat

rabbitmq-server-node1.bat

 

新增節點2到節點1組叢集

rabbitmqctl-node2.bat stop_app
rabbitmqctl-node2.bat reset
rabbitmqctl-node2.bat join_cluster [email protected]

rabbitmqctl-node2.bat start_app

  cluster_status 檢視叢集狀態

在命令列中執行rabbitmqctl-node2.bat cluster_status

訪問http://127.0.0.1:15674/#/,http://127.0.0.1:15675/#/檢視