超出需要的工作预配置并发结论介绍通过功能即服务的无服务器部署范例使开发人员能够以可扩展且经济高效的方式轻松部署其应用程序。然而这种便利性和灵活性也伴随着一系列需要注意的复杂性。在使用长时间运行的服务器的早期部署模型中只要服务器启动并运行执行环境就始终可用。这使您的应用程序能够立即响应传入的请求。新的无服务器范例要求我们作为开发人员找到方法来确保您的功能可用并尽快响应请求。无服务器功能的性能缺陷在无服务器环境中您的函数可以缩减为零。这可以让您将运营成本降至最低但也会带来技术成本。当您没有可用的函数实例来响应请求时必须实例化一个新函数。
这称为冷启动。注意有关 WhatsApp 号码数据 冷启动是什么以及我们如何在使用时尽可能缩短冷启动时间的详细说明请阅读我们最近的文章我们如何使用将无服务器冷启动速度提高倍。缓慢的冷启动可能会给用户带来非常糟糕的体验并最终降低他们对产品的体验。这是问题。除了冷启动问题之外实际处理程序函数的性能也非常重要。无服务器应用程序通常由许多小型独立的功能组成这些功能通过事件总线队列等协议相互交互。各个功能之间的相互通信创建了每个请求的依赖链。如果其中一个函数非常慢它将影响链的其余部分。因此处理程序性能是问题。性能优化的最佳实践在我们花了几个月的时间深入研究无服务器环境并优化在其中的行为方式。
在此过程中我们发现了许多最佳实践您可以在自己的应用程序中采用这些最佳实践以保持尽可能高的性能。例如您可能在无服务器函数中执行类似的操作上面的处理函数计算斐波那契数列中的第个数字。计算完成后您的函数将继续处理请求并最终返回响应。将其移至处理程序的外部允许在环境有更多可用资源时进行计算并使其仅运行一次而不是在每次调用时运行。更新后的代码如下所示另一件需要记住的事情是支持顶级等待它允许您在处理程序之外运行异步代码。我们发现在处理程序之外显式运行的函数会对函数的性能产生积极影响使您的功能尽可能简单无服务器函数是非常小的孤立的代码片段。 |