我是Express和Firebase的新手,但我觉得功能的主要好处是负载平衡,并为每个功能提供所需的带宽。
同时,每当我寻找将Firebase功能与Express结合的方法时,总是一个Express应用程序绑定到一个功能上。
这不是一个主要的性能问题吗?因为一个函数处理所有的api请求?为每个端点或至少为它们的组创建一个函数会更好吗?还是创建这么多Express实例是一个更糟糕的想法?
每个函数调用都在自己的服务器实例中完全隔离运行。在项目中定义了多少函数并不重要,因为每个函数的每次调用都是完全独立的。此外,在一个服务器实例中,每个函数调用(无论调用哪个路由)都是串行处理的,正如您从节点所期望的那样。在这种情况下,性能从来都不是问题,除非您的代码效率低下。由于您还没有说明您的代码正在做什么,因此无法对其在云函数中的实际性能进行任何说明。
唯一真正的限制是缩放。每个函数最多可以扩展到1000个并发实例。因此,如果你在一个功能背后有一个快递应用程序,为你的所有请求提供服务,那么该应用程序将扩展到1000个。如果你在两个功能后面有两个应用程序,那么这两个功能中的每一个都可以扩展到1000个,总共2000个。
如果您认为1000个并发实例的限制是有问题的,那么您可能高估了项目的负载。或者,您可能在一个函数调用中做了太多的工作。如果真的是这样的话,云功能并不是最适合你的工具,你应该用应用引擎或计算引擎对你的环境施加更多的控制。