Answers:
由于无服务器应用程序在两次运行之间不保持任何状态,因此无法维护数据库连接池。无服务器应用程序确实面临与90年代CGI脚本相同的约束。通常,永久性服务器进程将能够胜过每个请求的进程或每个请求的容器的体系结构,因为服务器只执行一次初始化,而不是每个请求一次。
无服务器程序不适用于对延迟敏感的任务,例如为网站提供服务。它们更适合您不想在主服务器上运行的零星后台任务,而无需手动管理和负载平衡额外的应用程序服务器。如果开发人员的生产力比低延迟响应重要得多,那么它们也可能是一个不错的选择。
这取决于。
lambda运行程序的幕后实现将影响这一点。我们可以看到在AWS中该容器可能被重用。
http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html
因此,我们至少可以看到某些请求的连接池/重用。另外,我们应该考虑数据库本身以及它如何处理传入的连接请求。
对我来说,这种问题突显了“无服务器”的一些问题,它仍然很新而且不成熟,因此细节尚未敲定。
我们应该永远记住,无服务器并不意味着没有服务器。如果您调用lambda的速率足够高,则可能有效地运行了多台服务器或“容器”。
实际上,启动时间和资源(例如lambda的IP地址)可能是一个实际问题。也许随着它们的成熟,人们将对如何运行它们达成共识,并且这些问题将得到可靠的答案。