Firebase功能在Express中是否会出现性能损失?

Firebase功能在Express中是否会出现性能损失?,firebase,express,google-cloud-functions,Firebase,Express,Google Cloud Functions,我对Express和Firebase都是新手,但我的印象是,函数的主要好处是负载平衡,并为每个函数提供所需的带宽 同时,每当我寻找将Firebase函数与Express结合的方法时,总是将单个Express应用程序绑定到单个函数 这不是一个主要的性能问题吗,因为只有一个函数处理所有的api请求?为每个端点或至少为端点组创建一个函数会更好吗?还是创建这么多Express实例是一个更糟糕的想法?每个函数调用在其自己的服务器实例中完全独立运行。在项目中定义了多少函数并不重要,因为每个函数的每次调用都是

我对Express和Firebase都是新手,但我的印象是,函数的主要好处是负载平衡,并为每个函数提供所需的带宽

同时,每当我寻找将Firebase函数与Express结合的方法时,总是将单个Express应用程序绑定到单个函数


这不是一个主要的性能问题吗,因为只有一个函数处理所有的api请求?为每个端点或至少为端点组创建一个函数会更好吗?还是创建这么多Express实例是一个更糟糕的想法?

每个函数调用在其自己的服务器实例中完全独立运行。在项目中定义了多少函数并不重要,因为每个函数的每次调用都是完全独立的。此外,在一个服务器实例中,每个函数调用(无论调用的是哪个路由)都是串行处理的,正如您从节点期望的那样。在这种情况下,性能永远不是问题,除非代码效率低下。由于您没有说明代码在做什么,因此无法对其在云函数中的实际性能做出任何说明

唯一真正的限制是可伸缩性。每个函数最多可扩展到1000个并发实例。因此,如果你有一个express应用程序支持一个单一功能,为你的所有请求提供服务,那么该应用程序将扩展到1000。如果在两个功能后面有两个应用程序,那么这两个功能中的每一个都可以扩展到1000个,总共可以扩展到2000个

如果您认为1000个并发实例的限制是有问题的,那么您可能高估了项目的负载。或者,您可能在一个函数调用中做了太多的工作。如果真是这样,云功能并不是您的最佳工具,您应该使用App Engine或Compute Engine对您的环境进行更多控制