搜尋

首頁  >  問答  >  主體

高併發 - swoole+rabbitmq+redis建置高迸發網站

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

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

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

大家讲道理大家讲道理2798 天前886

全部回覆(1)我來回復

  • PHPz

    PHPz2017-04-22 09:01:34

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

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

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

    回覆
    0
  • 取消回覆