成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Rabbitmq群集部署-創(chuàng)新互聯(lián)

博文大綱:
一、Rabbitmq概念
二、部署單臺(tái)Rabbitmq
三、部署Rabbitmq集群
四、單臺(tái)節(jié)點(diǎn)加入或退出群集配置

在東光等地區(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概念

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ī)器上。

Rabbitmq使用場(chǎng)景

消息隊(duì)列在實(shí)際應(yīng)用中常用在異步處理、應(yīng)用解耦、流量削鋒和消息通訊這四個(gè)場(chǎng)景。

二、部署單臺(tái)Rabbitmq

注:在開始之前,主機(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群集部署

#開啟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)行登錄,登錄成功后顯示如下:

Rabbitmq群集部署

能夠訪問成功,表示單臺(tái)rabbitmq就搭建完成了。

三、部署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ù)的持久化。

1、部署環(huán)境如下:

Rabbitmq群集部署

其中192.168.20.2是基于上面的單臺(tái)rabbitmq來做的。

2、安裝rabbitmq服務(wù)

在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

3、配置主機(jī)192.168.20.2

[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/

4、重啟所有要加入群集的節(jié)點(diǎn)服務(wù)器

在所有要加入群集的服務(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)

5、在rabbitmq01上配置群集

[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)名稱

6、配置rabbitmq02、03加入rabbitmq01群集

[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

7、在rabbitmq01上查看節(jié)點(diǎn)狀態(tài)

[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)警

8、在rabbitmq創(chuàng)建管理用戶并加入管理組

由于節(jié)點(diǎn)被reset重置了,所以用戶也需要重新創(chuàng)建。

[root@rabbitmq01 ~]# rabbitmqctl add_user admin 123.com
[root@rabbitmq01 ~]# rabbitmqctl set_user_tags admin administrator

9、登錄web界面訪問

群集內(nèi)任意節(jié)點(diǎn)的IP+15672端口都可以進(jìn)行登錄:

可以在下面的頁面看到群集節(jié)點(diǎn)的信息:
Rabbitmq群集部署

10、配置web界面添加Vhost

Rabbitmq群集部署

進(jìn)入創(chuàng)建的虛擬主機(jī):

Rabbitmq群集部署

然后配置如下:

Rabbitmq群集部署

設(shè)置完成后再次查看虛擬主機(jī):

Rabbitmq群集部署

設(shè)置匹配策略:

Rabbitmq群集部署

發(fā)布消息:

Rabbitmq群集部署

設(shè)置發(fā)布消息內(nèi)容:

Rabbitmq群集部署

Rabbitmq群集部署

Rabbitmq群集部署

然后刷新當(dāng)前頁面,即可看到在當(dāng)前虛擬主機(jī)中的隊(duì)列總數(shù):

Rabbitmq群集部署

四、單臺(tái)節(jié)點(diǎn)加入或退出群集配置

1、節(jié)點(diǎn)加入群集

由于我在上面部署群集時(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加入到群集:

Rabbitmq群集部署

2、單節(jié)點(diǎn)退出群集

1)先在rabbitmq04上面停止節(jié)點(diǎn)
[root@rabbitmq04 ~]# rabbitmqctl stop_app
2)回到主節(jié)點(diǎn)rabbitmq01上刪除節(jié)點(diǎn)
[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)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
大埔县| 扎兰屯市| 察雅县| 蕲春县| 望城县| 鄂尔多斯市| 岢岚县| 定日县| 开鲁县| 巫山县| 阜康市| 福泉市| 桑日县| 福泉市| 元谋县| 定州市| 广灵县| 宝坻区| 安平县| 三原县| 莫力| 比如县| 府谷县| 衡阳县| 云和县| 卢龙县| 定日县| 扎鲁特旗| 灵丘县| 青冈县| 丘北县| 莆田市| 元阳县| 海门市| 南雄市| 塘沽区| 沽源县| 开鲁县| 玛纳斯县| 全椒县| 青阳县|