AWS Java Lambda JVM实例
假设我有一个AWS lambda函数AWS Java Lambda JVM实例,java,amazon-web-services,aws-lambda,serverless-architecture,Java,Amazon Web Services,Aws Lambda,Serverless Architecture,假设我有一个AWS lambda函数 **String lambdaFunction1() { //some processing }** 假设SNS主题中的任何新消息都会触发lambdaFunction1。10条SNS消息将触发多少个JVM实例 AWS lambda是在自己的JVM中执行每个lambda,还是重复使用相同的JVM实例。引用 假设您的函数完成,经过一段时间,然后调用 又来了。Lambda可能会重新创建一个新容器,其中 案例经验如上文所述。情况就是这样 如果您更改代码,这是肯定
**String lambdaFunction1() {
//some processing
}**
假设SNS主题中的任何新消息都会触发lambdaFunction1。10条SNS消息将触发多少个JVM实例
AWS lambda是在自己的JVM中执行每个lambda,还是重复使用相同的JVM实例。引用
假设您的函数完成,经过一段时间,然后调用
又来了。Lambda可能会重新创建一个新容器,其中
案例经验如上文所述。情况就是这样
如果您更改代码,这是肯定的
但是,如果您没有更改代码,并且没有太多时间更改代码
过去,Lambda可能会重用以前的容器。这提供了一些
对双方的性能优势:Lambda可以跳过节点
语言初始化,您可以在
代码。上次写入/tmp的文件仍将保留
如果重新使用沙箱,就会出现这种情况
记住,您不能依赖于容器被重用,因为它是
Lambda有权创建一个新的
如前所述:您不能依赖于容器被重用,但当AWS认为这是一种性能提升时,这是一个很好的机会
或者更简单一点:AWS可能知道如何使lambda尽可能高效,所以您不应该真的过度考虑这一点
此外,虽然本博客的目标是Node.js,但AWS似乎根据他们的帖子为Java做了类似的事情。这会给你带来什么不同?1。这是为了理解它是如何工作的。当我们访问数据库时,它将有助于设计连接池。下面的博客文章很好地说明了AWS如何重用其容器:我不认为您可以说创建了多少JVM实例,老实说,您也不应该关心这一点。这是为了理解AWS如何维护JVM,其次它将有助于在Lambdats中设计DB连接池感谢您深思熟虑的回答。关键的一点是,lambda不能在内存或磁盘中保持状态,否则在同一实例上重复执行会给您带来麻烦。好的,这意味着每个lambda实例都是一个容器。谢谢你的洞察力