想知道如何在雲端上傳遞和處理來自使用者的網路請求訊息嗎?AWS的SQS可以幫助我們做到這一點。我們往下走吧!
SQS是Simple Queue Service的縮寫,是一套可以提供雲端訊息處理和程式作業的服務,讓我們可以有效、彈性處理大型任務和接收訊息的頻率。
參考大話AWS雲端架構一書的架構圖,SQS的組成如下:
情境是我們在雲端的系統接收到使用者的網路流量去執行某項工作。第一台機器稱作Producer收到流量後,會發送訊息告知使用者,你的流量我們收到了,請耐心等候下一則的工作狀態通知;並將使用者要求的工作內容傳遞到Message。Message會將訊息以JSON格式放置到Queue內。第二台機器Consumer會依序處理Queue的任務,並根據進度,告知使用者工作狀態。
Producer最大可傳送至Message的容量大小是256KB。那要傳送大型的檔案,不就無解?解法就在S3!什麼意思呢?
在訊息傳送過程當中,大的檔案會被上傳至S3,訊息本身只需要紀錄檔案存放在S3上的路徑。檔案本身的處理,Consumer只需要根據訊息所提供的檔案路徑,即可去S3把資料拉下來處理,處理後的資料一樣放回S3;使用者需要處理過後的資料時,一樣根據訊息內所提供的S3路徑,便可取得所需資料。
Producer傳送到在Queue裡面的訊息,最多可以放4天;超過4天的話,則需要另外調整參數,以目前服務來看,最多可放到14天。
Consumer處理資料的方式有兩種,FIFO以及Standard。