第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

RabbitMq為什么需要Exchange

看過rabbitmq官網(wǎng)的demo,沒有交換機(jī)的也可以實(shí)現(xiàn)隊(duì)列。后來場景復(fù)雜了,用到了exchange。具體上exchange有什么用處?能清晰的解答下嗎?

正在回答

3 回答

我覺得 消息隊(duì)列正確的用法 應(yīng)該是一個生產(chǎn)者對應(yīng)一個 交換機(jī)。 一個 消費(fèi)者對應(yīng)一個 隊(duì)列, 至于 分發(fā)的邏輯 是通過各種綁定來實(shí)現(xiàn)的。

例如 電子商務(wù)場景:產(chǎn)生訂單的有很多 渠道 比如網(wǎng)站,團(tuán)購,秒殺,第三方等等。每個 都 對應(yīng)一個 交換機(jī)。產(chǎn)生的訂單 數(shù)據(jù)是類似的 但key 可以是 商品類別加上id 等信息組合。比如 大類.小類.商品id 這種格式

剛開始的時候 只有一個 總倉 訂單處理也就一個程序 一個消費(fèi)者 也就一個隊(duì)列。 所有交換機(jī)都綁定這個隊(duì)列。這樣所有訂單都到總倉去了

慢慢生意大了 比如生鮮分出去了個 倉 有單獨(dú)的處理程序了 也成了個新的隊(duì)列 這樣 在mq 后臺 根據(jù)key 中大類是生鮮的綁定到新的隊(duì)列就好了

再過段時間 某次秒殺,預(yù)計(jì)量比較大。實(shí)現(xiàn)準(zhǔn)備了個小倉庫 把這個秒殺商品預(yù)先包好存放在那單獨(dú)處理了。這時運(yùn)行個 新的程序 產(chǎn)生個 新的隊(duì)列 ,這時就將秒殺交換機(jī)的 按照key 中的id為此商品的 綁定到新的隊(duì)列。這樣就可以了 而無論是秒殺的其他產(chǎn)品,還是在其他渠道上這個商品訂單還是 總倉處理

其實(shí) 交換機(jī)還可以再綁交換機(jī) 多次分發(fā)更實(shí)現(xiàn)更復(fù)雜的邏輯。就是這么綁來綁去,實(shí)現(xiàn) 不用改代碼就實(shí)現(xiàn)了整個信息流隨著業(yè)務(wù)的變遷

1 回復(fù) 有任何疑惑可以回復(fù)我~

你所說的簡單的例子沒有聲明交換器,用雙引號(即空字符串)表示,但實(shí)際他是調(diào)用了默認(rèn)的交換器,并以隊(duì)列名作為路由鍵發(fā)布消息!消費(fèi)端也是看似沒有綁定交換器,但底層卻是根據(jù)隊(duì)列名作為路由鍵進(jìn)行綁定!交換器始終是存在的,不存在生產(chǎn)者直接將消息發(fā)送給隊(duì)列

2 回復(fù) 有任何疑惑可以回復(fù)我~

AMQP協(xié)議中的核心思想就是生產(chǎn)者和消費(fèi)者隔離,生產(chǎn)者從不直接將消息發(fā)送給隊(duì)列。生產(chǎn)者通常不知道是否一個消息會被發(fā)送到隊(duì)列中,只是將消息發(fā)送到一個交換機(jī)。先由Exchange來接收,然后Exchange按照特定的策略轉(zhuǎn)發(fā)到Queue進(jìn)行存儲。同理,消費(fèi)者也是如此。Exchange 就類似于一個交換機(jī),轉(zhuǎn)發(fā)各個消息分發(fā)到相應(yīng)的隊(duì)列中。

4 回復(fù) 有任何疑惑可以回復(fù)我~
#1

207xiaopang

你所說的簡單的例子沒有聲明交換器,用雙引號(即空字符串)表示,但實(shí)際他是調(diào)用了默認(rèn)的交換器,并以隊(duì)列名作為路由鍵發(fā)布消息!消費(fèi)端也是看似沒有綁定交換器,但底層卻是根據(jù)隊(duì)列名作為路由鍵進(jìn)行綁定!交換器始終是存在的,不存在生產(chǎn)者直接將消息發(fā)送給隊(duì)列
2018-05-21 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

RabbitMq為什么需要Exchange

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號