AWS Lambdas中使用Hibernate导致启动速度慢

3
我有一些AWS Lambda函数,执行数据库的CRUD操作。我大约有20个持久类。我的应用程序基于Spring,并使用Hibernate进行ORM。
分配了1536MB后,我的函数需要大约16秒才能从冷启动中运行。根据日志,其中大部分时间是Hibernate解析我的`hbm.xml`文件,构建`LoadPlans`并通常处理元数据。
由于16秒的响应时间太长了,我需要加快速度的方法。是否有一种方法可以推迟Hibernate的元数据解析或在编译时进行解析?
我已经查看了JPA元模型生成器,但似乎是为了在运行时构建查询。
2个回答

1
使用了1536MB的内存,我的函数从冷启动到运行约需要16秒钟。根据日志显示,大部分时间是Hibernate解析我的hbm.xml文件、构建LoadPlans和处理元数据等操作所耗费的时间。 这不应该花费那么长的时间。我认为原因在于其他方面,可能启用了Hibernate模式验证。

除非默认启用模式验证,否则我没有做任何事情来打开它。此外,如果我删除数据库连接字符串,它只会在这段时间结束时崩溃。请记住,Lambda 不是很强大。在我的开发机器上,该函数仅需要 7 秒钟。 - Knight Magenta

0

使用CloudWatch触发Lambda可能是一个解决方案,第一次冷启动后,它将从上次执行开始“运行”约40分钟,只需为Lambda设置每30-40分钟的触发事件即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接