我们可以在AWS Lambda上部署Spring Micro服务吗?

时间:2020-09-16 09:39:42

标签: spring-boot aws-lambda microservices

是否建议在Lambda上部署spring micro服务。我最近部署了一个示例Spring Boot应用程序,该应用程序从Lambda上的AWS RDS Oracle DB返回了示例数据,只是分析了是否可以在不同的Lambda函数中部署两个微服务并使用API​​网关对其进行配置的可能性。

我是一个新手,我想了解如果我在不同的lambda函数上部署两个或多个服务,Lambda是否真的可以支持微服务模式,例如服务发现/断路器或Saga模式。 Lambda是否可以实时用于此类情况?

除了包裹/有效载荷大小限制或超时限制之外,还有其他人可以帮助我吗?

预先感谢

2 个答案:

答案 0 :(得分:1)

如果您将Java用于AWS lambdas之类的无服务器应用程序,我建议您寻找一个支持Ahead-of-Time编译的框架,这将大大促进您的应用程序启动。如果您的应用程序没问题,那么用Micronaut重写它非常容易(非常类似于Spring引导开发)

例如,与Graalvm一起使用Quarkus的Micronaut。 Spring Boot不是直接与AWS lambdas一起使用的最佳选择,它的包装尺寸很大,而且初始时间很多,不利于API服务。

对于小型冷启动,可调整内存从256MB开始,最大封装大小为25 MB的目标,对于弹簧启动,这是不可行的。

答案 1 :(得分:0)

如果您指的是Spring Boot Cloud Functions,这正是他们的目的。

Google Cloud Functions已经具有运行Java函数的Alpha product

AWS Lambda似乎对此as well有所支持。

如果您只是编写了一个带有嵌入式Tomcat的Spring Boot应用程序,并将其打包在一个按需旋转的Docker容器中,请注意,冷启动可能会成为问题,尤其是Tomcat的开销。 >