【发布时间】:2016-01-19 12:56:46
【问题描述】:
有两种“部署”Java Lambda 的方法:
- 创建一个包含所有(未打包的)依赖项的“胖”jar,例如通过使用 maven-shade-plugin
- 创建一个包含我的代码的 zip 文件和一个包含所有依赖项的 lib 目录作为 jar 文件
由于执行我们的简单 Lambda 的环境“启动”(20-30 秒)需要很长时间,我想知道这两种方法是否比另一种方法“更快”还是可以进一步加快?
【问题讨论】:
-
我只尝试过 fat jar 方法,我认为这种方法更快,因为要解压缩的文件更少……但您可以尝试一下并自己测试;)。老实说,我认为这两种方法都不会更快,但您可以尝试。
-
我使用 Maven shade 插件部署了许多“Fat jar” lambda,大多数在
-
两种方法都试过了,没发现有什么区别。但是,我可以区分 3 种不同的行为: 20-30 个“实例”的初始加速并行处理事件(~150-250/分钟)导致 30 秒以上的“启动时间”;常规事件处理时间小于 100ms;在接下来的几个小时里,有一些孤立的“启动事件”需要大约 5 秒。
-
@djhworld:只有老式的 java 东西。我使用 AWS 开发工具包通过 KMS 解密凭证,然后访问 RDS MySQL。后者似乎第一次需要约 3 秒,并且可以解释 5 秒的“启动事件”。
-
Lambda 偶尔会杀死你的 JVM,所以你会看到一些 Lambda 调用需要重新启动它
标签: java aws-lambda