2017-04-07 152 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 –

相关问题