国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RabbitMQ Exchange類型和工作模式介紹

這篇具有很好參考價(jià)值的文章主要介紹了RabbitMQ Exchange類型和工作模式介紹。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一RabbitMQ Exchange類型

RabbitMQ常用的交換器類型有: fanout、 direct、 topic、 headers四種。

1.1.Fanout

會(huì)把所有發(fā)送到該交換器的消息路由到所有與該交換器綁定的隊(duì)列中

如圖:

RabbitMQ Exchange類型和工作模式介紹

1.2.Direct

direct類型的交換器路由規(guī)則很簡單,它會(huì)把消息路由到那些BindingKey和RoutingKey完全匹配的 隊(duì)列中,如下圖:RabbitMQ Exchange類型和工作模式介紹

1.3.Topic

topic類型的交換器在direct匹配規(guī)則上進(jìn)行了擴(kuò)展,也是將消息路由到BindingKey和RoutingKey 相匹配的隊(duì)列中,這里的匹配規(guī)則稍微不同,它約定:

  • BindingKey和RoutingKey一樣都是由.分隔的字符串;
  • BindingKey中可以存在兩種特殊字符*#,用于模糊匹配,其中*用于匹配一個(gè)單詞, #用于匹配多個(gè)單詞(可以是0個(gè))。
    RabbitMQ Exchange類型和工作模式介紹

1.4.Headers

headers類型的交換器不依賴于路由鍵的匹配規(guī)則來路由信息,而是根據(jù)發(fā)送的消息內(nèi)容中的 headers屬性進(jìn)行匹配。在綁定隊(duì)列和交換器時(shí)指定一組鍵值對(duì),當(dāng)發(fā)送的消息到交換器時(shí), RabbitMQ會(huì)獲取到該消息的headers,對(duì)比其中的鍵值對(duì)是否完全匹配隊(duì)列和交換器綁定時(shí)指定的鍵值對(duì),如果匹配,消息就會(huì)路由到該隊(duì)列。headers類型的交換器性能很差,不實(shí)用。

二 RabbitMQ 工作模式介紹

2.1.work工作模式(資源的競爭)

生產(chǎn)者發(fā)消息,啟動(dòng)多個(gè)消費(fèi)者實(shí)例來消費(fèi)消息,每個(gè)消費(fèi)者僅消費(fèi)部分信息,可達(dá)到負(fù)載均衡的效果。RabbitMQ Exchange類型和工作模式介紹

1.消息產(chǎn)生者將消息放入隊(duì)列消費(fèi)者可以有多個(gè),消費(fèi)者1,消費(fèi)者2同時(shí)監(jiān)聽同一 個(gè)隊(duì)列,消息被消費(fèi)。C1 C2共同爭搶當(dāng)前的消息隊(duì)列內(nèi)容,誰先拿到誰負(fù)責(zé)消費(fèi)消息(隱患:高并發(fā)情況下,默認(rèn)會(huì)產(chǎn)生某一個(gè)消息被多個(gè)消費(fèi)者共同使用,可以設(shè)置一個(gè)開關(guān)(syncronize) 保證一條消息只能被一個(gè)消費(fèi)者使用)。

2.2.publish/subscribe發(fā)布訂閱(共享資源)

使用fanout類型交換器,routingKey忽略。每個(gè)消費(fèi)者定義生成一個(gè)隊(duì)列并綁定到同一個(gè) Exchange,每個(gè)消費(fèi)者都可以消費(fèi)到完整的消息。

RabbitMQ Exchange類型和工作模式介紹
1、每個(gè)消費(fèi)者監(jiān)聽自己的隊(duì)列
2、生產(chǎn)者將消息發(fā)給broker,由交換機(jī)將消息轉(zhuǎn)發(fā)到綁定此交換機(jī)的每個(gè)隊(duì)列,每個(gè)綁定交換機(jī)的隊(duì)列都將接收到消息。

2.3.routing路由模式

RabbitMQ Exchange類型和工作模式介紹

使用 direct類型的Exchange,發(fā)N條消費(fèi)并使用不同的 routingKey,消費(fèi)者定義隊(duì)列并將隊(duì)列、 routingKey、Exchange綁定。此時(shí)使用 direct模式Exchagne必須要 routingKey完全匹配的 情況下消息才會(huì)轉(zhuǎn)發(fā)到對(duì)應(yīng)的隊(duì)列中被消費(fèi)。

上一個(gè)模式中,可以將消息廣播到很多接收者。 現(xiàn)在我們想讓接收者只接收部分消息,如,我們通過直接模式的交換器將關(guān)鍵的錯(cuò)誤信息記錄到 log文件,同時(shí)在控制臺(tái)正常打印所有的日志信息。

應(yīng)用–direct交換器

分布式系統(tǒng)中有很多應(yīng)用,這些應(yīng)用需要運(yùn)維平臺(tái)的監(jiān)控,其中一個(gè)重要的信息就是服務(wù)器的日志 記錄。
我們需要將不同日志級(jí)別的日志記錄交給不同的應(yīng)用處理。 如何解決?

使用direct交換器

如果要對(duì)不同的消息做不同的處理,此時(shí)不能使用 fanout類型的交換器,因?yàn)樗粫?huì)盲目的廣播消息。 我們需要使用 direct類型的交換器。 direct交換器的路由算法很簡單只要消息的 routingKey和隊(duì)列的 bindingKey對(duì)應(yīng),消息就可以推送給該隊(duì)列。

RabbitMQ Exchange類型和工作模式介紹

上圖中的交換器 X是 direct類型的交換器,綁定的兩個(gè)隊(duì)列中,一個(gè)隊(duì)列的 bindingKey是 orange,另一個(gè)隊(duì)列的 bindingKey是 black和 green。 如此,則 routingKey是 orange的消息發(fā)送給隊(duì)列Q1, routingKey是 black和 green的消息發(fā) 送給Q2隊(duì)列,其他消息丟棄。

2.4.topic 主題模式(路由模式的一種)

使用 topic類型的交換器,隊(duì)列綁定到交換器、 bindingKey時(shí)使用通配符,交換器將消息路由轉(zhuǎn) 發(fā)到具體隊(duì)列時(shí)會(huì)根據(jù)消息 routingKey模糊匹配,比較靈活。

上個(gè)模式中,我們通過 direct類型的交換器做到了根據(jù)日志級(jí)別的不同,將消息發(fā)送給了不同隊(duì)列的。 這里有一個(gè)限制,現(xiàn)在我不僅想根據(jù)日志級(jí)別劃分日志消息,還想根據(jù)日志來源劃分日志,怎 么做?

比如,我想監(jiān)聽cron服務(wù)發(fā)送的 error消息,又想監(jiān)聽從kern服務(wù)發(fā)送的所有消息。 此時(shí)可以使用RabbitMQ的主題模式( Topic)。

要想 topic類型的交換器, routingKey就不能隨便寫了,它必須得是點(diǎn)分單詞。單詞可以隨便寫,生產(chǎn)中一般使用消息的特征。如:“stock.usd.nyse”,“nyse.vmw”,“quick.orange.rabbit”等。該點(diǎn)分單詞字符串最長255字節(jié)。 bindingKey也必須是這種形式。 topic類型的交換器背后原理跟 direct類型的類似:只要隊(duì)列 的 bindingKey的值與消息的 routingKey匹配,隊(duì)列就可以收到該消息。有兩個(gè)不同:

  1. *(star)匹配一個(gè)單詞
  2. #匹配0到多個(gè)單詞
    RabbitMQ Exchange類型和工作模式介紹
    上圖中,我們發(fā)送描述動(dòng)物的消息。消息發(fā)送的時(shí)候指定的 routingKey包含了三個(gè)詞,兩個(gè)點(diǎn)。 第一個(gè)單詞表示動(dòng)物的速度,第二個(gè)是顏色,第三個(gè)是物種:..。

創(chuàng)建三個(gè)綁定:

Q1綁定到*.orange.*
Q2綁定到 *.*.rabbitlazy.#。

  1. Q1關(guān)注orange顏色動(dòng)物的消息

  2. Q2關(guān)注兔子的消息,以及所有懶的動(dòng)物消息

如果不能匹配,就丟棄消息。
如果發(fā)送的消息 routingKey是" lazy.orange.male.rabbit",則會(huì)匹配最后一個(gè)綁定。
如果在 topic類型的交換器中 bindingKey使用 #,則就是 fanout類型交換器的行為。
如果在 topic類型的交換器中 bindingKey中不使用 *和 #,則就是 direct類型交換器的行為文章來源地址http://www.zghlxwxcb.cn/news/detail-500351.html

到了這里,關(guān)于RabbitMQ Exchange類型和工作模式介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 202、RabbitMQ 之 使用 fanout 類型的Exchange 實(shí)現(xiàn) Pub-Sub 消息模型---fanout類型就是廣播類型

    202、RabbitMQ 之 使用 fanout 類型的Exchange 實(shí)現(xiàn) Pub-Sub 消息模型---fanout類型就是廣播類型

    就是聲明一個(gè) fanout 類型的 Exchange 來分發(fā)消息。消費(fèi)者進(jìn)行消費(fèi) fanout 類型就是廣播模式 。 fanout 類型 的 Exchange 不會(huì)判斷消息的路由key,直接將消息分發(fā)給綁定到該Exchange的所有隊(duì)列。 生產(chǎn)者發(fā)送一條消息到fanout類型的Exchange后,綁定到該Exchange的所有隊(duì)列都會(huì)收到該消息的

    2024年02月07日
    瀏覽(19)
  • RabbitMQ工作模式-工作隊(duì)列

    RabbitMQ工作模式-工作隊(duì)列

    官網(wǎng)關(guān)于工作模式的解釋地址:https://www.rabbitmq.com/getstarted.html Work Queue(工作隊(duì)列) 生產(chǎn)者發(fā)消息,啟動(dòng)多個(gè)消費(fèi)者來消費(fèi)消息,每個(gè)消費(fèi)者僅消費(fèi)部分消息,可達(dá)到負(fù)載均衡的效果。 創(chuàng)建生產(chǎn)者 創(chuàng)建消費(fèi)者 首先運(yùn)行消息費(fèi),為了測試工作隊(duì)列模式,消費(fèi)都需要啟動(dòng)多個(gè),

    2024年02月10日
    瀏覽(20)
  • RabbitMQ工作模式-路由模式

    RabbitMQ工作模式-路由模式

    官方文檔參考:https://www.rabbitmq.com/tutorials/tutorial-four-python.html 使用 direct 類型的Exchange,發(fā)N條消息并使用不同的routingKey,消費(fèi)者定義隊(duì)列并將隊(duì)列 routingKey 、Exchange綁定。此時(shí)使用 direct 模式Exchange必須要 routingKey 完成匹配的情況下消息才會(huì)轉(zhuǎn)發(fā)到對(duì)應(yīng)的隊(duì)列中被消費(fèi)。 樣例使用

    2024年02月10日
    瀏覽(21)
  • RabbitMQ工作模式-主題模式

    RabbitMQ工作模式-主題模式

    主題模式 官方文檔參考:https://www.rabbitmq.com/tutorials/tutorial-five-python.html 使用topic類型的交換器,隊(duì)列綁定到交換器、bingingKey時(shí)使用通配符,交換器將消息路由轉(zhuǎn)發(fā)到具體隊(duì)列時(shí),會(huì)根據(jù)消息routingKey模糊匹配,比較靈活。 在Direct類型的交換器做到了根據(jù)日志級(jí)別的不同,將消

    2024年02月10日
    瀏覽(17)
  • RabbitMQ五大常用工作模式

    RabbitMQ五大常用工作模式

    消息生產(chǎn)者 消息消費(fèi)者(會(huì)一直監(jiān)聽隊(duì)列) 工作隊(duì)列 消息生產(chǎn)能力大于消費(fèi)能力,增加多個(gè)消費(fèi)節(jié)點(diǎn) 和簡單隊(duì)列類似,增加多個(gè)消費(fèi)節(jié)點(diǎn),處于競爭關(guān)系 默認(rèn)策略:round robin輪訓(xùn) 生產(chǎn)者 消費(fèi)者1 消費(fèi)者2 輪訓(xùn)策略驗(yàn)證 先啟動(dòng)兩個(gè)消費(fèi)者,再啟動(dòng)生產(chǎn)者 缺點(diǎn):存在部分節(jié)點(diǎn)

    2024年02月19日
    瀏覽(23)
  • RabbitMQ:工作隊(duì)列模式

    RabbitMQ:工作隊(duì)列模式

    ??個(gè)人主頁:不斷前進(jìn)的皮卡丘 ??博客描述:夢想也許遙不可及,但重要的是追夢的過程,用博客記錄自己的成長,記錄自己一步一步向上攀登的印記 ??個(gè)人專欄:消息中間件 工作隊(duì)列(又名: 任務(wù)隊(duì)列 )背后的主要思想是避免立即執(zhí)行資源密集型任務(wù)并等待其完成。相反

    2024年01月23日
    瀏覽(26)
  • RabbitMQ的工作模式

    RabbitMQ 的工作模式 一 .simple 模式(即最簡單的收發(fā)模式) 二 .work 工作模式 ( 資源的競爭 ) publish_subscribe 發(fā)布訂閱 (../../../../../0 馬士兵 / 新建文件夾 /BAT 面試突擊資料 (1)/ 整理 /BAT 面試突擊資料 /15- 消息中間件 MQ 面試題( 2020 最新 版) .assets/publish_subscribe 發(fā)布訂閱 ( 共享資

    2024年02月06日
    瀏覽(14)
  • 消息隊(duì)列之RabbitMQ工作模式

    提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動(dòng)添加 消息隊(duì)列之RabbitMQ工作模式 提示:寫完文章后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: 在這篇博客中,我將深入探討 RabbitMQ 的工作模式,帶你

    2024年01月18日
    瀏覽(114)
  • RabbitMQ消息隊(duì)列的工作模式

    官方文檔地址:https://www.rabbitmq.com/getstarted.html 工作模式其實(shí)就是消息隊(duì)列分發(fā)消息的路由方式。 RabbitMQ常用的幾種工作模式: 簡單模式 WorkQueues工作隊(duì)列模式 PubSub生產(chǎn)者/PubSub消費(fèi)者模式 Routing路由模式 Topics通配符模式 發(fā)布/訂閱模式(Publish/Subscribe):該模式用于一對(duì)多的

    2024年02月15日
    瀏覽(26)
  • RabbitMQ的6種工作模式

    RabbitMQ的6種工作模式

    官方文檔: http://www.rabbitmq.com/ https://www.rabbitmq.com/getstarted.html RabbitMQ 常見的 6 種工作模式: 1)、消息產(chǎn)生后將消息放入隊(duì)列。 2)、消息的消費(fèi)者監(jiān)聽消息隊(duì)列,如果隊(duì)列中有消息,就消費(fèi)掉,消息被拿走后,自動(dòng)從隊(duì)列中刪除。 3)、存在的問題:消息可能沒有被消費(fèi)者正確處

    2024年02月14日
    瀏覽(12)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包