2017-05-04 42 views
1

我有一項服務將任務發送給Docker鏡像中包含的工作人員。 現在我想使用AWS FreeTier進行擴展(所以AutoScale組不是一個選項?)。 我使用這個圖像測試了一個t2.micro實例的構建,一切正常。 如果我手動創建x個實例,我該如何平衡它們之間的負載? 實例是否可以設置一個標誌,表示它可以接受更多請求?由於清理邏輯,內存和CPU使用率級別可能沒有幫助。它可能仍然在低CPU和內存使用情況下運行。AWS如何將每個請求轉發到新實例

回答

3

我會建議使用SQS。讓實例「拉」工作,而不是試圖將工作「推」給他們。

將每個'任務'放入SQS隊列中,實例請求一個任務在準備就緒時處理。如果他們成功完成任務,則工作者/實例將其從隊列中移除,並且可以要求另一個任務進行工作。

如果實例由於某種原因失敗,該任務將最終自動放回到隊列中,並且可以由另一個工作人員拾取。

雖然一個工人有一個任務項目可以工作,但它不會同時發給另一個工作人員(注意:除非極少數情況下,並且可能在非常高的情況下 - 我個人從來沒有它發生了,但你需要考慮這種可能性)。

+0

非常感謝您對SQS的迴應。我會留下評論。 – halgrim

相關問題