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

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

引入 message 表的意義?

為了保證消息百分百投遞, 在發(fā)送消息到 RabbitMQ 的同時,寫入一份消息到 message 表.


然后消費者讀取 RabbitMQ 的同時也要查詢 message 表對應(yīng)的消息.??


我有點理解不了, 在這個設(shè)計中, 直接拿到 Rabbit 貌似都可以,理解不了意義在哪里.

正在回答

3 回答

借樓,感覺這個場景舉例不是很好,既然我消費者能直接訪問DB,并且也有個定時任務(wù)可以讀取業(yè)務(wù)數(shù)據(jù)和MSG數(shù)據(jù),那還需要RabbitMQ干嘛。我直接讓生產(chǎn)者把消息放到MSG表,消費者定時任務(wù)訪問MSG表獲取消息處理,不用擔(dān)心冪等,不用擔(dān)心消息在MQ傳遞過程總出現(xiàn)的各種問題。?

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

_phpstudy 提問者

我當(dāng)初就是這個問題, 在這個流程中,確實直接干掉 rabbit 也是無問題的. 這個問題應(yīng)該重點從消息隊列能辦到而 db 辦不到的角度出發(fā). 假設(shè) 你現(xiàn)在消息比較多, 生產(chǎn)消息速度比較快, 使用 DB, 會頻繁的操作DB,這里就有個效率問題. 再假設(shè), 你因為消息多, 需要多跑一個程序來處理消息, 使用 db , 可能會產(chǎn)生 兩個程序互相競爭問題(多個程序處理同一條記錄,產(chǎn)生臟數(shù)據(jù) 或者 產(chǎn)生鎖)
2020-03-26 回復(fù) 有任何疑惑可以回復(fù)我~
#2

渙渙虛心 回復(fù) _phpstudy 提問者

分布式應(yīng)用中,不同的application用不同的DB啊。類似分布式事務(wù)里本地消息表。。。
2020-05-19 回復(fù) 有任何疑惑可以回復(fù)我~

如果一個消息成功產(chǎn)生了,但是因為生產(chǎn)者沒有連接到exchange或者網(wǎng)絡(luò)故障等 那么這個消息是不會保存到消息隊列中去的,消費者也就無法對這個消息進行消費了,而案例中這個message表就能解決這個問題,就算在消息隊列中沒有這條消息記錄也能在數(shù)據(jù)庫的消息表中找到,并重新進行消費

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

消費者讀取MQ的時候為什么需要拿去message表對應(yīng)的消息?message表只是起到一個訂單發(fā)送消息狀態(tài)的記錄作用 只是記錄的作用,在拿去mq后手動確認消息簽收后 這時候才回去更新message表對應(yīng)的訂單投遞狀態(tài) 即:0(發(fā)送中)->1(發(fā)送成功),如果說中間因為網(wǎng)絡(luò)狀態(tài)等等導(dǎo)致消費者這邊沒有簽收確認這個消息,此時的訂單消息狀態(tài)還是0,這時候會有定時任務(wù)去輪詢查取所有消息狀態(tài)為0(發(fā)送中)的消息來resend。

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

_phpstudy 提問者

我的問題就在于此, 你簽收消息之后, 更新 message 表對應(yīng)消息 這一步. 我們有了 message 表, 記錄了消費者要確認的消息, 記錄了消息的狀態(tài). 那么我們現(xiàn)在直接 把 rabbitMQ 干掉. 只用 message 表, 照樣能實現(xiàn)消息發(fā)布訂閱系統(tǒng)啊. 所以我問這里 rabbitMQ 起什么作用, 意義在哪里.
2019-10-23 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

引入 message 表的意義?

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

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

幫助反饋 APP下載

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

公眾號

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