問題爲什麼來自服務器的第一個Firebase調用需要比後續調用更長的時間才能返回?
首先要火力地堡從服務器調用需要15 - 20倍比後續調用更長。雖然這對調用Firebase的傳統服務器不是問題,但它可能會導致利用Amazon Lambda/Google Cloud Functions的無服務器體系結構的問題。
問題
- 爲什麼是第一次調用這麼多慢?是否由於身份驗證?
- 是否有任何解決方法?
- 使用Amazon Lambda/Google Cloud Functions在Firebase數據庫上執行一些用戶啓動的數據計算並在1-2秒內將結果返回給客戶端是否切實可行?
語境
我使用無服務器架構,火力地堡作爲我的數據和亞馬遜的λ/雲功能增強火力地堡一些服務器端的計算,例如的倉庫規劃搜索其他用戶。我打算通過來自我的客戶端的HTTP請求來觸發這些功能。
我擔心的一件事是從服務器第一次調用Firebase所花費的大量時間。在我的筆記本電腦上測試一些服務器端代碼時,第一個偵聽器會在6秒後返回!隨後的電話會在300 - 400毫秒內返回。數據集非常小(2 - 3個關鍵值對),我也通過交換觀察者進行測試。
相比之下,從我的筆記本電腦撥打Google Maps API大約需要400ms才能返回。
我意識到服務器的響應時間要快得多。第一次通話仍然是15 - 20X的一個因素,令人不安。
初始調用將需要建立HTTP連接,將其升級到Web套接字,並且確實進行多向認證握手。隨後從數據庫加載數據只需要傳輸請求,從磁盤(可能)獲取數據並將其傳回。但是,如果沒有看到具體的實施,就很難多說。 –