RabbitMQ 也能使命必達,正確處理每則訊息
前言
這篇文章,心血來潮來談談之前介紹過的 RabbitMQ。
按照以往程式運用 RabbitMQ 送訊息時,絕對會承受一些問題
- 訊息有可能會石沈大海,不知道死在什麼地方找不到。
- 程式在推送訊息時,沒關注過失敗的情境,導致一問三不知,因為你的 log 看不出來,也沒通知 user 狀況
- 使用 RabbitMQ 會造成分散式架構上的問題,必定會有某個節點上的 service 搞事、爆炸、丟訊息的狀況。
自發性問自己的服務可能產生的問題,該如何解決,也是 Software Engineer 應該有的基本素養。
🔥 那下面讓我們談談這些事情吧 🔥
言歸正傳
我們要如何讓以下這個再正常不過的流程中,RabbitMQ 做到使命必達,並且盡可能的不要有重複處理相同訊息的情況呢?
上面這個過程可以分成三個階段討論,我分別用了 1 、2、3 標示在圖上。接著我們來了解問題如何發生的。
讓我們用前次的 project,繼續完善一些功能