2017-04-07 153 views
5

我試圖在Amazon Lambda上部署Spring Boot應用程序。 我注意到,如果處理程序連續調用 - 春天試圖重新加載自己,重新設置datasources,重新加載豆等在Amazon Lambda上運行Spring Boot

有反正告訴Spring Boot不要重新初始化自己,如果主要方法已經叫什麼名字?

感謝 達明

回答

3

據我所知,亞馬遜LAMBDA是一個無狀態的功能,那就是實例爲每個請求。

如果您多次調用Lambda,這很正常,您會看到每個請求的Spring Boot初始化。

如果請求緩慢,AWS可能會再次使用相同的Lambda,因此只能執行一次Spring初始化。

如果請求來得快或並行,AWS將啓動更多的Lambdas實例來動態擴展。這解釋了你面臨的問題。

我認爲,使用整個Spring應用程序作爲AWS Lambda不是正確的方法。 Lambda應該是一個無狀態函數,可以快速實例化。

您可以嘗試使您的彈簧應用盡可能小,以減少加載時間並節省資源,如this tutorial中所述。

+0

Hi @Stefan。我同意所有這些觀點。我想過不要使用sping,而是看着spark之類的東西,但我認爲它有可能引入糟糕的編碼習慣。對於我寫的代碼 - 它都是基於隊列的。時間安排很重要,而且我會意識到這一點 –

+0

我認爲這對於Spring Boot開發人員來說是一項工作,可以減少AWS Lambda中可用的開銷時間,特別是與API網關結合使用,以便爲Spring MVC/Web應用程序提供服務。它已經在Python/Django世界中完成了:http://www.zappa.io –

+0

如果你想看到這個,請投票支持https://github.com/spring-projects/spring-boot/issues/10136 –

相關問題