溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

RabbitMQ的應(yīng)用示例

發(fā)布時(shí)間:2021-08-23 15:24:27 來(lái)源:億速云 閱讀:205 作者:小新 欄目:編程語(yǔ)言

這篇文章主要為大家展示了“RabbitMQ的應(yīng)用示例”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“RabbitMQ的應(yīng)用示例”這篇文章吧。

雖然后臺(tái)使用了讀寫(xiě)分離技術(shù),能夠在一定程度上抗擊高并發(fā),但是如果并發(fā)量特別巨大時(shí),主數(shù)據(jù)庫(kù)不能同時(shí)處理高并發(fā)的請(qǐng)求,這時(shí)數(shù)據(jù)庫(kù)容易宕機(jī)。

問(wèn)題:

現(xiàn)在的問(wèn)題是如何既能保證數(shù)據(jù)庫(kù)正常運(yùn)行,又能實(shí)現(xiàn)用戶(hù)數(shù)據(jù)的入庫(kù)操作?

解決方案:

引入rabbitMQ技術(shù):

RabbitMQ的應(yīng)用示例

說(shuō)明:

當(dāng)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)壓力過(guò)載時(shí),這時(shí)會(huì)將過(guò)載以后的數(shù)據(jù)先保存到rabbitMQ中。其中的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列的形式,先進(jìn)先出。這時(shí)數(shù)據(jù)庫(kù)從隊(duì)列中取數(shù)據(jù)執(zhí)行。一直到隊(duì)列中的數(shù)據(jù)全部操作完成為止。

RabbitMQ就是消息的中間件。

RabbitMQ介紹:

RabbitMQ的應(yīng)用示例

RabbitMQ性能分析:

RabbitMQ的應(yīng)用示例

1.MSMQ:是微軟的產(chǎn)品 應(yīng)用于.net框架

2.ActiveMQ:是apache的產(chǎn)品 做業(yè)務(wù)用圖廣泛

3.RabbitQM:是愛(ài)立信的產(chǎn)品(早期手機(jī)生產(chǎn)廠(chǎng)商)基于erlang語(yǔ)言(函數(shù)式編程大數(shù)據(jù) scala語(yǔ)言)

4.ZeroMQ:大數(shù)據(jù)中應(yīng)用廣泛,缺點(diǎn)容易丟失數(shù)據(jù).但是業(yè)務(wù)系統(tǒng)中使用率較少

5.KafkaMQ:大數(shù)據(jù)項(xiàng)目中使用,50萬(wàn)/秒 現(xiàn)在主流

5.RabbitMQ環(huán)境搭建:

1.配置JDK:

2.固定虛擬機(jī)IP地址:

RabbitMQ的應(yīng)用示例

3.連接虛擬機(jī):

編輯文件跳轉(zhuǎn)路徑:

Vim go

Cd /usr/local/src

2.安裝rabbitMQ:

1.新建文件rabbitmq

/usr/local/src/rabbitmq

2.將安裝文件導(dǎo)入

RabbitMQ的應(yīng)用示例

3.安裝rabbitMQ

RabbitMQ的應(yīng)用示例

4.開(kāi)啟遠(yuǎn)程用戶(hù)訪(fǎng)問(wèn):

將文件復(fù)制到指定目錄下:

cp /usr/share/doc/rabbitmq-server-3.6.1/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

修改新復(fù)制的文件64行

RabbitMQ的應(yīng)用示例

1.將%%去掉

2.將,號(hào)去掉

修改為:

RabbitMQ的應(yīng)用示例

5.開(kāi)啟rabbitMQ:

執(zhí)行命令:

rabbitmq-plugins enable rabbitmq_management

RabbitMQ的應(yīng)用示例

表示啟動(dòng)成功

6.開(kāi)放端口15672和5672

iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

訪(fǎng)問(wèn)rabbitMQ的控制臺(tái)

iptables -I INPUT -p tcp --dport 5672 -j ACCEPT

程序連接rabbitMQ的端口

或者關(guān)閉防火墻

7.啟動(dòng)/停止服務(wù)

service rabbitmq-server start 啟動(dòng)

service rabbitmq-server stop 停止

service rabbitmq-server restart 重啟

RabbitMQ的應(yīng)用示例

8.遠(yuǎn)程登錄:

訪(fǎng)問(wèn):

http://192.168.154.137:15672/

用戶(hù)名和密碼都是guest

RabbitMQ的應(yīng)用示例

9.視圖解析:

RabbitMQ的應(yīng)用示例

10.建立管理員:

RabbitMQ的應(yīng)用示例

11.構(gòu)建虛擬主機(jī):

RabbitMQ的應(yīng)用示例

RabbitMQ的應(yīng)用示例

11.構(gòu)建虛擬主機(jī):

RabbitMQ的應(yīng)用示例

RabbitMQ的應(yīng)用示例

RabbitMQ的應(yīng)用示例

6.rabbitMQ的工作模式:

1.簡(jiǎn)單模式:

RabbitMQ的應(yīng)用示例

p:proverder 生產(chǎn)者

c:consumer 消費(fèi)者

紅色部分:隊(duì)列 先進(jìn)先出

原理說(shuō)明:

生產(chǎn)者負(fù)責(zé)向隊(duì)列中添加消息.消費(fèi)者負(fù)責(zé)消費(fèi)隊(duì)列中的消息.

消費(fèi)者通過(guò)監(jiān)聽(tīng)器,實(shí)時(shí)監(jiān)控消息隊(duì)列.如果消息隊(duì)列中有消息則消費(fèi),如果沒(méi)有消息 則等待消息.

2.測(cè)試代碼:

1.定義Connection

RabbitMQ的應(yīng)用示例

1.1.定義生產(chǎn)者

RabbitMQ的應(yīng)用示例

RabbitMQ的應(yīng)用示例

3.定義消費(fèi)者:

RabbitMQ的應(yīng)用示例

2.工作模式:

RabbitMQ的應(yīng)用示例

原理說(shuō)明:

生產(chǎn)者為消息隊(duì)列中生產(chǎn)消息,多個(gè)消費(fèi)者爭(zhēng)搶執(zhí)行權(quán)利,誰(shuí)搶到誰(shuí)執(zhí)行.

實(shí)用場(chǎng)景:秒殺業(yè)務(wù) 搶紅包等

測(cè)試代碼:

RabbitMQ的應(yīng)用示例

3.發(fā)布訂閱模式:

RabbitMQ的應(yīng)用示例

x:exchange 交換機(jī)

P:表示生產(chǎn)者

C1-2:表示多個(gè)消費(fèi)者

原理說(shuō)明:

當(dāng)生產(chǎn)者生產(chǎn)消息后,先將消息發(fā)往交換機(jī).交換機(jī)再將消息發(fā)往訂閱了當(dāng)前消息的隊(duì)列,再次有各個(gè)隊(duì)列的消費(fèi)者執(zhí)行.

類(lèi)似于 廣播

RabbitMQ的應(yīng)用示例

定義消費(fèi)者::

RabbitMQ的應(yīng)用示例

4.路由模式:

RabbitMQ的應(yīng)用示例

x:表示交換機(jī) type=direct 表示路由

路由模式中,需要定義路由key

原理說(shuō)明:

1.當(dāng)生產(chǎn)者發(fā)布消息時(shí),會(huì)定義指定的路由key 例如 key:error

2.這時(shí)交換機(jī)會(huì)根據(jù)路由key發(fā)往滿(mǎn)足條件的隊(duì)列中.如果隊(duì)列中沒(méi)有符合條件的路由key將不能執(zhí)行該消息.

5.主題模式:

RabbitMQ的應(yīng)用示例

Type:topic 表示主題模式

  • * (star) can substitute for exactly one word.

  • # (hash) can substitute for zero or more words.

  • 有坑 效果一樣

7.訂單實(shí)現(xiàn)RabbitMQ

1.引入配置文件:

classpath:jdbc.propertiesclasspath:env.properties /hp月n、 口山閏廷比二曰站叩四瞿二月當(dāng)“習(xí) classpath:rabbitmq.properties IUe> /value>" v:shapes="圖片_x0020_42">

2.引入生產(chǎn)者

1.引入配置文件

RabbitMQ的應(yīng)用示例

2.定義發(fā)送端

RabbitMQ的應(yīng)用示例

3.發(fā)送端代碼

通過(guò)代碼相rabbitmq中發(fā)送數(shù)據(jù)

RabbitMQ的應(yīng)用示例

RabbitMQ的應(yīng)用示例

4.定義接收端:

引入配置文件

RabbitMQ的應(yīng)用示例

5.定義接收端:

RabbitMQ的應(yīng)用示例

6.測(cè)試成功

以上是“RabbitMQ的應(yīng)用示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI