最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

RabbitMq為什么需要Exchange

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

正在回答

3 回答

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

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

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

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

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

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

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

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

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

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

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

207xiaopang

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

舉報

0/150
提交
取消

RabbitMq為什么需要Exchange

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

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

幫助反饋 APP下載

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

公眾號

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