博文大綱:
在東光等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需策劃設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),東光網(wǎng)站建設(shè)費(fèi)用合理。
一、Rabbitmq概念
二、部署單臺(tái)Rabbitmq
三、部署Rabbitmq集群
四、單臺(tái)節(jié)點(diǎn)加入或退出群集配置
RabbitMQ是一個(gè)開源的靠AMQP協(xié)議實(shí)現(xiàn)的服務(wù),服務(wù)器端用Erlang語言編寫,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系統(tǒng)中存儲(chǔ)轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗。
AMQP,即Advanced Message Queuing Protocol,高級(jí)消息隊(duì)列協(xié)議,是應(yīng)用層協(xié)議的一個(gè)開放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計(jì)。消息中間件主要用于組件之間的解耦,消息的發(fā)送者無需知道消息使用者的存在,反之亦然。
它可以使對(duì)應(yīng)的客戶端(client)與對(duì)應(yīng)的消息中間件(broker)進(jìn)行交互。消息中間件發(fā)布者(publisher)那里收到消息(發(fā)布消息的應(yīng)用,也稱為producer),然后將他們轉(zhuǎn)發(fā)給消費(fèi)者(consumers,處理消息的應(yīng)用)。由于AMQP是一個(gè)網(wǎng)絡(luò)協(xié)議,所以發(fā)布者、消費(fèi)者以及消息中間件可以部署到不同的物理機(jī)器上。
消息隊(duì)列在實(shí)際應(yīng)用中常用在異步處理、應(yīng)用解耦、流量削鋒和消息通訊這四個(gè)場(chǎng)景。
注:在開始之前,主機(jī)名最好為默認(rèn)的localhosts(如果不是,會(huì)在啟動(dòng)rabbitmq時(shí)報(bào)錯(cuò),解決方法:重啟主機(jī),再啟動(dòng)rabbitmq)
可以自行在官網(wǎng)下載所需軟件,也可以下載我網(wǎng)盤中的rpm包,然后自行上傳至服務(wù)器。
下面這臺(tái)服務(wù)器的IP為192.168.20.2。
[root@localhost src]# ls #確認(rèn)所需RPM包
erlang-18.1-1.el6.x86_64.rpm
rabbitmq-server-3.6.6-1.el6.noarch.rpm
socat-1.7.3.2-2.el7.x86_64.rpm
[root@localhost src]# yum -y localinstall erlang-18.1-1.el6.x86_64.rpm rabbitmq-server-3.6.6-1.el6.noarch.rpm socat-1.7.3.2-2.el7.x86_64.rpm
#安裝RPM包
[root@localhost src]# chkconfig rabbitmq-server on #rabbitmq加入開機(jī)自啟
[root@localhost src]# /etc/init.d/rabbitmq-server start #啟動(dòng)rabbitmq服務(wù)
確定rabbitmq正在運(yùn)行:
[root@localhost src]# ps -ef | grep rabbitmq
上述命令返回的結(jié)果如下:
#開啟rabbitmq的web管理插件,以便可以通過瀏覽器進(jìn)行訪問
[root@localhost src]# rabbitmq-plugins enable rabbitmq_management
#創(chuàng)建登錄用戶
[root@localhost src]# rabbitmqctl add_user admin 123.com
#將創(chuàng)建的admin用戶添加至administrator組
[root@localhost src]# rabbitmqctl set_user_tags admin administrator
客戶端訪問rabbitmq服務(wù)器的15672端口,使用新創(chuàng)建的admin用戶進(jìn)行登錄,登錄成功后顯示如下:
能夠訪問成功,表示單臺(tái)rabbitmq就搭建完成了。
Rabbitmq集群大概分為兩種方式:
1、普通模式:默認(rèn)的集群模式,消息的尸體只存在一個(gè)節(jié)點(diǎn)上;
2、鏡像模式:把需要的隊(duì)列做成鏡像,存在于多個(gè)節(jié)點(diǎn)。
ha-mode:
- all:列隊(duì)到所有節(jié)點(diǎn);
- exatly:隨機(jī)鏡像到其他節(jié)點(diǎn)上;
- nodes:鏡像到指定節(jié)點(diǎn)上。
集群節(jié)點(diǎn)模式:
1、內(nèi)存節(jié)點(diǎn):工作在內(nèi)存上;
2、磁盤節(jié)點(diǎn):工作在磁盤上;
例外:內(nèi)存節(jié)點(diǎn)和磁盤節(jié)點(diǎn)共同存在,提高訪問速度的同時(shí)增加數(shù)據(jù)持久化。
相比內(nèi)存節(jié)點(diǎn)雖然不寫入磁盤,但是它執(zhí)行比磁盤節(jié)點(diǎn)要好,集群中,只需要一個(gè)磁盤來保存狀態(tài)就足夠了,如果集群中只有內(nèi)存節(jié)點(diǎn),那么節(jié)點(diǎn)一旦宕機(jī),所有的狀態(tài)、消息都會(huì)丟失,無法實(shí)現(xiàn)數(shù)據(jù)的持久化。
其中192.168.20.2是基于上面的單臺(tái)rabbitmq來做的。
在192.168.20.3和20.4兩個(gè)節(jié)點(diǎn)(20.5節(jié)點(diǎn)后面再用到)進(jìn)行以下操作,以便部署rabbitmq服務(wù):
#上傳所需rpm包
[root@localhost src]# ls
erlang-18.1-1.el6.x86_64.rpm
rabbitmq-server-3.6.6-1.el6.noarch.rpm
socat-1.7.3.2-2.el7.x86_64.rpm
#安裝rabbitmq
[root@localhost src]# yum -y localinstall erlang-18.1-1.el6.x86_64.rpm rabbitmq-server-3.6.6-1.el6.noarch.rpm socat-1.7.3.2-2.el7.x86_64.rpm
#啟動(dòng)rabbitmq并加入開機(jī)自啟
[root@localhost src]# /etc/init.d/rabbitmq-server start
[root@localhost src]# chkconfig rabbitmq-server on
[root@localhost ~]# tail -4 /etc/hosts #配置本地解析(主機(jī)名直接寫想要自定義的即可)
192.168.20.2 rabbitmq01
192.168.20.3 rabbitmq02
192.168.20.4 rabbitmq03
192.168.20.5 rabbitmq04
#將hosts文件復(fù)制到其他節(jié)點(diǎn)
[root@localhost ~]# scp /etc/hosts root@192.168.20.3:/etc/
[root@localhost ~]# scp /etc/hosts root@192.168.20.4:/etc/
[root@localhost ~]# scp /etc/hosts root@192.168.20.5:/etc/
#將rabbitmq01的cookie節(jié)點(diǎn)信息復(fù)制到其他需要加入群集的節(jié)點(diǎn)
#部署群集的時(shí)候需要節(jié)點(diǎn)cookie信息一致
[root@localhost ~]# scp /var/lib/rabbitmq/.erlang.cookie root@192.168.20.3:/var/lib/rabbitmq/
[root@localhost ~]# scp /var/lib/rabbitmq/.erlang.cookie root@192.168.20.4:/var/lib/rabbitmq/
在所有要加入群集的服務(wù)器上執(zhí)行以下命令進(jìn)行重啟(包括rabbitmq01)。
[root@localhost ~]# init 6 #重啟后就會(huì)發(fā)現(xiàn)主機(jī)名已經(jīng)更改為hosts文件中定義的了
若重啟的時(shí)后被卡在某個(gè)界面,那么需要強(qiáng)制重啟。
[root@rabbitmq01 ~]# ps -ef | grep rabbit #重啟后確定已經(jīng)啟動(dòng)
[root@rabbitmq01 ~]# rabbitmqctl stop_app #停止rabbitmq節(jié)點(diǎn)服務(wù)
[root@rabbitmq01 ~]# rabbitmqctl reset #重置rabbitmq節(jié)點(diǎn)
[root@rabbitmq01 ~]# rabbitmqctl start_app #啟動(dòng)rabbit節(jié)點(diǎn)服務(wù)
Starting node rabbit@rabbitmq01 ... #復(fù)制返回的節(jié)點(diǎn)名稱
[root@rabbitmq02 ~]# rabbitmqctl stop_app #停止節(jié)點(diǎn)服務(wù)
[root@rabbitmq02 ~]# rabbitmqctl reset #重置節(jié)點(diǎn)
[root@rabbitmq02 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq01 #以內(nèi)存方式加入群集,后面是復(fù)制的rabbitmq01的節(jié)點(diǎn)名
[root@rabbitmq02 ~]# rabbitmqctl start_app
[root@rabbitmq02 ~]# rabbitmq-plugins enable rabbitmq_management
[root@rabbitmq01 ~]# rabbitmqctl cluster_status #查看節(jié)點(diǎn)狀態(tài)
Cluster status of node rabbit@rabbitmq01 ...
[{nodes,[{disc,[rabbit@rabbitmq01]},
{ram,[rabbit@rabbitmq03,rabbit@rabbitmq02]}]},
{running_nodes,[rabbit@rabbitmq03,rabbit@rabbitmq02,rabbit@rabbitmq01]},
{cluster_name,<<"rabbit@rabbitmq01">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq03,[]},
{rabbit@rabbitmq02,[]},
{rabbit@rabbitmq01,[]}]}]
# rabbit01工作模式為磁盤節(jié)點(diǎn);rabbit02和03為內(nèi)存節(jié)點(diǎn)模式
# running_nodes:正在運(yùn)行的節(jié)點(diǎn)
# cluster_name:節(jié)點(diǎn)名稱
# alarms:發(fā)生問題時(shí)rabbit01、02、03會(huì)進(jìn)行報(bào)警
由于節(jié)點(diǎn)被reset重置了,所以用戶也需要重新創(chuàng)建。
[root@rabbitmq01 ~]# rabbitmqctl add_user admin 123.com
[root@rabbitmq01 ~]# rabbitmqctl set_user_tags admin administrator
群集內(nèi)任意節(jié)點(diǎn)的IP+15672端口都可以進(jìn)行登錄:
可以在下面的頁面看到群集節(jié)點(diǎn)的信息:
進(jìn)入創(chuàng)建的虛擬主機(jī):
然后配置如下:
設(shè)置完成后再次查看虛擬主機(jī):
設(shè)置匹配策略:
發(fā)布消息:
設(shè)置發(fā)布消息內(nèi)容:
然后刷新當(dāng)前頁面,即可看到在當(dāng)前虛擬主機(jī)中的隊(duì)列總數(shù):
由于我在上面部署群集時(shí),hosts文件已經(jīng)可以解析群集內(nèi)的節(jié)點(diǎn),所以這里就省略解析了
#在節(jié)點(diǎn)192.168.20.5服務(wù)器上安裝rabbitmq并配置
[root@localhost src]# yum -y localinstall erlang-18.1-1.el6.x86_64.rpm rabbitmq-server-3.6.6-1.el6.noarch.rpm socat-1.7.3.2-2.el7.x86_64.rpm
[root@localhost src]# chkconfig rabbitmq-server on
[root@localhost src]# /etc/init.d/rabbitmq-server start
#將群集中的cookie信息復(fù)制到本地
[root@localhost src]# scp root@rabbitmq01:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/
[root@localhost src]# init 6 #重啟本機(jī)
#加入群集
[root@rabbitmq04 ~]# rabbitmqctl stop_app
[root@rabbitmq04 ~]# rabbitmqctl reset
[root@rabbitmq04 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq01
#以內(nèi)存運(yùn)行的方式加入群集,若要以磁盤的方式加入,省略“--ram”選項(xiàng)即可
[root@rabbitmq04 ~]# rabbitmqctl start_app
#開啟web管理頁面
[root@rabbitmq04 ~]# rabbitmq-plugins enable rabbitmq_management
查看web界面,確認(rèn)rabbitmq04加入到群集:
[root@rabbitmq04 ~]# rabbitmqctl stop_app
[root@rabbitmq04 ~]# rabbitmqctl -n rabbit@rabbitmq01 forget_cluster_node rabbit@rabbitmq04
# -n:指定節(jié)點(diǎn)名稱
# forget_cluster_node:后面跟要?jiǎng)h除的節(jié)點(diǎn)名稱
———————— 本文至此結(jié)束,感謝閱讀 ————————
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享文章:Rabbitmq群集部署-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article18/dhccgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、ChatGPT、響應(yīng)式網(wǎng)站、網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容