恰恰相反!
網站高流量通常對無伺服器服務來說是好事,有時甚至是理想的選擇。如果你的網站頻繁且持續地進行 HTTP 請求,那麼這些容器大部分時間都會保持「熱啟動」狀態。請求到達後,由已運行的容器處理,冷啟動的情況很少發生,自動擴展意味著你無需擔心伺服器在流量高峰期不堪重負。
無伺服器架構較不適用該是以下情況:
1) 零星、不頻繁的流量:如果你的網站每 30 分鐘才收到一次請求,那麼每次請求時容器都可能處於「冷啟動」狀態,每個用戶都會感受到這種初始化延遲。在這種情況下,一台 24/7 全天候運行的小型虛擬機器實際上可以提供更好的體驗。
2) 長時間運行的操作:無伺服器函數通常有執行時間限制(通常為 10-30 秒,有時長達 15 分鐘,視服務提供者而定),如果你需要處理大型視訊、運行數分鐘的複雜計算或維護持久的 WebSocket 連接,那麼無伺服器函數並不適合這些場景。
3) 可預測且穩定的高負載:如果您知道會持續 24 小時高流量,那麼專用伺服器或虛擬機器可能更具成本效益。無伺服器模式依呼叫次數和執行時間毫秒計費,在高流量情況下,其成本可能高於持續運行幾台高效能虛擬機器。
4) 有狀態操作:無伺服器函數的設計本身就是無狀態的,每次調用都是獨立的。如果你的應用程式需要在請求之間維護記憶體中的狀態,則需要像 Redis 或資料庫這樣的外部存儲,這會增加建置的複雜性。
對於具有評論功能的博客網站,即使是流量頻繁的博客,無伺服器模式也能很好地工作。每個請求都是短暫的、無狀態的,完美契合其模型。主要的成本考量出現在每月請求量達到數百萬次時,此時你需要比較不同方案的定價。