Mar*_*ado 3 spring-cloud aws-lambda spring-cloud-function
我用 Spring Cloud Function 创建了一个 AWS lamnda,但我认为这种方法在执行 lambda 时很慢。
我的 lambda 非常简单,它只将一个对象保存到数据库中。
对另一种语言或框架使用 Spring Boot 函数是个好主意吗?
例如使用 phyton、nodejs 或其他解决方案。
这是一个很难在短时间内回答的问题。
Spring Cloud Functions 和 Spring 框架的缺点是,其固有的依赖注入机制在启动期间可能会很快花费相当长的时间。Spring 框架的某些流行部分自然需要一些时间来启动:数据库连接、MQ 上的消息传递等。
再加上与轻量级环境相比,JVM 通常需要更多时间来启动这一事实,如果您需要或想要避免几秒钟的冷启动,人们会说 Java 不是最佳选择。根据我的经验,当您开始投资 Lambda 时,冷启动通常对您的打击最大,因为那时您通常在那里有小的非连续工作负载,因此您的函数会定期从内存中驱逐,从而导致您的用户还将定期经历冷启动。
根据我的经验,我建议为直接与用户交互的函数使用更轻量级的运行时环境。这意味着基本上所有对 HTTP 调用做出反应的代码都应该使用 JavaScript/TypeScript/NodsJS 或 Python 之类的技术。
所以在你上面描述的情况下,绝对是的。尝试使用除 Java 之外的其他技术。
我的 lambda 非常简单,它只将一个对象保存到数据库中。
我的代码库中确实有许多具有类似功能的函数,这些函数通常会在亚秒内冷启动,并且在预热状态下需要不到 100 毫秒。
总的来说,可以说一旦无服务器应用程序发展起来,像 Spring Cloud Functions 这样的框架仍然是工具带中非常重要的工具。通常,一旦您涉足无服务器和 Lambda,您就会发现在 AWS 之上使用托管服务非常简单和有用:数据库、消息队列、电子邮件、S3 对象存储等。
然后很明显,应用程序能够被事件驱动,并且实际上引发了许多其他事件,但那些由用户通过 HTTP 调用直接触发的事件。例如,在我的一个应用程序中,用户可以执行以下操作:
对于上面提到的用例,我已经有了 Java 代码。更具体地说,在春天。因此,在 Spring Cloud Function 中重用这些代码,但将这些运行时间较长的任务与用户的 HTTP 请求分离是完全有意义的。它们可以在后台异步运行,突然间冷启动场景不再那么重要了。
一个报告本身就需要15秒才能生成,对于个人用户来说真的不是什么秀场,如果不时需要18秒。
| 归档时间: |
|
| 查看次数: |
1891 次 |
| 最近记录: |