引入 message 表的意義?
為了保證消息百分百投遞, 在發送消息到 RabbitMQ 的同時,寫入一份消息到 message 表.
然后消費者讀取 RabbitMQ 的同時也要查詢 message 表對應的消息.??
我有點理解不了, 在這個設計中, 直接拿到 Rabbit 貌似都可以,理解不了意義在哪里.
為了保證消息百分百投遞, 在發送消息到 RabbitMQ 的同時,寫入一份消息到 message 表.
然后消費者讀取 RabbitMQ 的同時也要查詢 message 表對應的消息.??
我有點理解不了, 在這個設計中, 直接拿到 Rabbit 貌似都可以,理解不了意義在哪里.
2019-10-12
舉報
2020-03-26
借樓,感覺這個場景舉例不是很好,既然我消費者能直接訪問DB,并且也有個定時任務可以讀取業務數據和MSG數據,那還需要RabbitMQ干嘛。我直接讓生產者把消息放到MSG表,消費者定時任務訪問MSG表獲取消息處理,不用擔心冪等,不用擔心消息在MQ傳遞過程總出現的各種問題。?
2020-01-17
如果一個消息成功產生了,但是因為生產者沒有連接到exchange或者網絡故障等 那么這個消息是不會保存到消息隊列中去的,消費者也就無法對這個消息進行消費了,而案例中這個message表就能解決這個問題,就算在消息隊列中沒有這條消息記錄也能在數據庫的消息表中找到,并重新進行消費
2019-10-23
消費者讀取MQ的時候為什么需要拿去message表對應的消息?message表只是起到一個訂單發送消息狀態的記錄作用 只是記錄的作用,在拿去mq后手動確認消息簽收后 這時候才回去更新message表對應的訂單投遞狀態 即:0(發送中)->1(發送成功),如果說中間因為網絡狀態等等導致消費者這邊沒有簽收確認這個消息,此時的訂單消息狀態還是0,這時候會有定時任務去輪詢查取所有消息狀態為0(發送中)的消息來resend。