博客專(zhuān)欄

EEPW首頁(yè) > 博客 > RabbitMQ集群部署(二)——普通集群模式部署

RabbitMQ集群部署(二)——普通集群模式部署

發(fā)布人:天翼云開(kāi)發(fā)者 時(shí)間:2025-03-27 來(lái)源:工程師 發(fā)布文章

本文分享自天翼云開(kāi)發(fā)者社區(qū)《RabbitMQ集群部署(二)——普通集群模式部署》,作者:芋泥麻薯 

RabbitMQ普通集群模式即在多個(gè)服務(wù)器上部署多個(gè)MQ實(shí)例, 每臺(tái)機(jī)器一個(gè)實(shí)例. 創(chuàng)建的每一個(gè)queue,只會(huì)存在一個(gè)MQ實(shí)例上. 但是每一個(gè)實(shí)例都會(huì)同步queue的元數(shù)據(jù)(即queue的標(biāo)識(shí)信息). 當(dāng)在進(jìn)行消費(fèi)的時(shí)候, 就算對(duì)應(yīng)的數(shù)據(jù)在其他的MQ實(shí)例上, 其也會(huì)根據(jù)內(nèi)部的queue的元數(shù)據(jù),從該queue所在實(shí)例上拉取數(shù)據(jù)過(guò)來(lái).這種方式只是一個(gè)簡(jiǎn)單的集群,并沒(méi)有考慮高可用。由于需要不斷去其他實(shí)例拉取數(shù)據(jù),所以性能開(kāi)銷(xiāo)巨大.容易造成單實(shí)例的性能瓶頸. 并且如果真正有數(shù)據(jù)的那個(gè)queue的實(shí)例宕機(jī)了. 那么其他的實(shí)例就無(wú)法進(jìn)行數(shù)據(jù)的拉取.這種方式只是通過(guò)集群部署的方式提高了消息的吞吐量,但是并沒(méi)有考慮到高可用. 

部署流程:

1、首先在第二和第三節(jié)點(diǎn)完成rabbitmq的安裝

yum -y install erlang

yum -y install rabbitmq-server 

2、將主節(jié)點(diǎn)的cookie,拷貝到從節(jié)點(diǎn)中,并修改對(duì)應(yīng)的權(quán)限

scp /var/lib/rabbitmq/.erlang.cookie root@192.168.64.128:/var/lib/rabbitmq/.erlang.cookie

scp /var/lib/rabbitmq/.erlang.cookie root@192.168.64.131:/var/lib/rabbitmq/.erlang.cookie 

chown -R rabbitmq:rabbitmq  /var/lib/rabbitmq/.erlang.cookie

chmod 400 /var/lib/rabbitmq/.erlang.cookie 

3、啟動(dòng)rabbitmq服務(wù),并關(guān)閉非主節(jié)點(diǎn)對(duì)應(yīng)app

service rabbitmq-server start

rabbitmqctl stop_app 

4、將非主節(jié)點(diǎn)加入到主節(jié)點(diǎn)的集群,bogon1對(duì)主節(jié)點(diǎn)的hostname

rabbitmqctl join_cluster --ram rabbit@bogon1 

5、加入集群以后則,啟動(dòng)對(duì)應(yīng)app即可,到此,普通集群模式部署完成。

rabbitmqctl start_app


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: RabbitMQ

技術(shù)專(zhuān)區(qū)

關(guān)閉