Memcached
Amazon EC2 ELB 將負載定向到其他實例和會話儲存
- 如果我們擴大規模(向 ELB 添加一個實例),我們是否可以將一些現有請求重定向到新實例。這樣,我們強製到新伺服器的使用者將被要求再次登錄
- 如果我們縮小規模(從 ELB 中刪除一個實例),那麼來自該伺服器的所有使用者將自動被 ELB 重定向到其他剩餘的伺服器。不應要求這些使用者再次登錄。
這可能嗎(包括請求的重定向)?如何?
歡迎任何想法,但我認為這可以使用中央會話儲存來解決。我只是不知道如何實現它。
使用中央會話儲存有哪些選擇?簡單數據庫?雷迪斯?記憶體記憶體?
更新:
我們的應用程序只是一個託管在 apache 中的簡單 Web 應用程序。我們將它的兩個實例添加到 Amazon ELB,並且我們正在使用 PHP。
任何 ELB php 具體建議?當按比例縮小/放大時,不應顯示使用者可見的症狀?
是的,您可以使用集中式會話儲存來解決所有這些問題以及更多問題。在不了解您的應用程序的情況下,不可能為您提供一個明確的實施指南(無論如何這將是一個 Stack Overflow 問題),但它通常就像設置一個選項(在 Rails 等框架中)到編寫幾行程式碼一樣簡單由 Web 框架呼叫並連接到儲存以儲存詳細資訊或檢索它們的膠水程式碼。
至於用什麼,我推薦Redis。雖然 memcached 似乎可以解決問題,但它有一個令人不快的缺點,即在您需要重新啟動 memcached 實例時要求使用者重新登錄。在冗餘系統中要遵循的一個好的經驗法則是,對基礎架構的任何更改都不應顯示任何使用者可見的症狀。另一方面,Redis 持久保存到磁碟,在更新和檢索方面都非常快,並且在我使用過的大規模情況下表現出令人難以置信的健壯性。