訊息對列概念
#從本質上說訊息對列就是一個佇列結構的中間件,也就是說訊息放入這個中間件之後就可以直接返回,並不需要係統立即處理,而另外會有一個程式讀取這些數據,並按順序進行逐次處理。 (推薦學習:PHP影片教學)
也就是說當你遇到一個並發特別大並且耗時特別長同時還不需要立即返回處理結果,使用訊息佇列可以解決這類問題。
對於訂單流程,我們可以設計兩個系統,一個是“訂單系統” 另外一個是“配送系統”, 在網購的時候我們應該都見過,當我提交了一個訂單之後,我在後台可以看到我的貨物正在配送中。這個時候就要參與一個「配送系統」。
如果我們在做架構的時候把「訂單系統」 和「配送系統」 設計在一起的話就會出現一些問題,首先對於訂單系統來說,因為系統的壓力會比較大,但是"配送系統" 沒必要為這些壓力做一些即時的反應。
第二個我們也不希望在訂單系統故障之後導致配送系統也出現故障,這個時候就會同時影響到兩個系統的正常運作。所以我們希望把這兩個系統進行解耦。這兩個系統分開之後我們可以透過一個中間的 「隊列表」 進行這兩個系統的溝通。
架構設計
#首先訂單系統會接收使用者的訂單,然後進行訂單的處理。
然後會把這些訂單資訊寫到隊伍清單中,這個隊清單是溝通這兩個系統的關鍵。
由配送系統定時執行的一個程式來讀取隊列表進行處理。
配送系統處理之後,會標記已處理的記錄。
以上是php如何用佇列做應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!