无服务器架构如何管理数据库连接?


10

据说无服务器体系结构的主要优点是,此类程序不需要专用服务器即可连续运行。然后在请求上被调用,并在退出函数时停止。

这意味着无服务器程序必须快速启动才能响应。然后,它如何处理耗时的操作,例如数据库连接?它是否每次都连接到数据库,还是单独管理数据库连接以像服务器应用程序中那样进行功能调用?

Answers:


9

由于无服务器应用程序在两次运行之间不保持任何状态,因此无法维护数据库连接池。无服务器应用程序确实面临与90年代CGI脚本相同的约束。通常,永久性服务器进程将能够胜过每个请求的进程或每个请求的容器的体系结构,因为服务器只执行一次初始化,而不是每个请求一次。

无服务器程序不适用于对延迟敏感的任务,例如为网站提供服务。它们更适合您不想在主服务器上运行的零星后台任务,而无需手动管理和负载平衡额外的应用程序服务器。如果开发人员的生产力比低延迟响应重要得多,那么它们也可能是一个不错的选择。


优点。我还建议将成本提高到促使人们转向无服务器的一大优势。如果您仅根据请求数向提供商(例如Amazon)付款,而不是为保持空闲服务器的运行而付费,那么您会节省金钱,尤其是在启动阶段。
保罗

2
@Paul无服务器的主要优点是便利性(PaaS与IaaS)。安全地管理服务器是大多数开发人员(包括我)不具备的技能。我敢肯定,在某些情况下,无服务器便宜得多。但是,虚拟专用服务器的起价为5美元/月,这非常具有竞争力。特别是考虑到VPS的限制要少得多,它允许您运行任意软件和永久服务。这有点像苹果与橘子的比较。在一种模型中,您要为空闲服务器付费,而在另一种模型中,则要为重复启动时间付费。
阿蒙

4

这取决于。

lambda运行程序的幕后实现将影响这一点。我们可以看到在AWS中该容器可能被重用。

http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html

因此,我们至少可以看到某些请求的连接池/重用。另外,我们应该考虑数据库本身以及它如何处理传入的连接请求。

对我来说,这种问题突显了“无服务器”的一些问题,它仍然很新而且不成熟,因此细节尚未敲定。

我们应该永远记住,无服务器并不意味着没有服务器。如果您调用lambda的速率足够高,则可能有效地运行了多台服务器或“容器”。

实际上,启动时间和资源(例如lambda的IP地址)可能是一个实际问题。也许随着它们的成熟,人们将对如何运行它们达成共识,并且这些问题将得到可靠的答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.