高併發 - swoole+rabbitmq+redis建置高迸發網站
大家讲道理
大家讲道理 2017-04-22 08:59:34
0
1
874

最近耳濡目染的了解了swoole、rabbitmq,redis以前用這還算熟悉。公司是做O2O項目,我是後台組(PHP),負責為移動APP端提供數據接口,現在用戶數呈指數增加,再有項目很快就無法承受高迸發訪問,所以想重構。

初步的想法是:
用rabbitmq作service,處理一些耗時工作,比如:圖片上傳,郵件發送,日誌等。
用redis作數據緩存。
swoole不知道怎麼用,看了官方的一些介紹好像很適合處理高迸發項目,但是不知道怎麼實用起來。

現有以下幾點疑問:
1、rabbitmq怎麼傳遞任務,比如用戶上傳圖片,表單提交一個圖片過來,怎麼將這個任務加入到隊列?消息應該怎麼傳?傳送郵件如果失敗了(郵件地址不正確)怎麼通知前端應用?
2、三者如何組合,用什麼作為接口入口?
3、或者有其他比較好的架構?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(1)
PHPzhong
  1. 上傳圖片首先你要接收表單提交的圖片,將所有資訊入庫,再發送圖片資訊到任務佇列。

例如表單傳過來兩個:name,img,那麼為img產生一個新的檔案名稱並儲存圖片,將name和圖片檔案名稱入庫,將圖片檔案名稱傳給訊息佇列(可以考慮下圖片路徑的問題)。後面的事情就是另外的任務去處理這些佇列,將圖片傳到圖片伺服器。
但是!圖片上傳用訊息佇列不如用專門的圖片伺服器直接處理。至於郵件發送失敗,如果是等郵件伺服器回應這個時間有些長,可以透過站內信通知等其他手段。

2.組合的話當然還是swoole作為入口。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板