优化Firebase Cloud Function网络连接的官方代码片段使用疑问
问题解答
1. 代码片段的网络优化实现逻辑
你提到的官方推荐代码本质是对Node.js运行时全局HTTP/HTTPS代理的连接复用配置,核心优化逻辑如下:
- 默认情况下,Cloud Functions 每次发起外部HTTPS请求都会新建TCP连接,请求完成后立即销毁连接,重复的TCP握手、TLS协商流程会产生大量额外请求耗时
- 代码通过将
http.globalAgent.keepAlive、https.globalAgent.keepAlive参数设置为true,开启TCP连接复用机制,同域名的多次请求会复用已建立的TCP连接,省去重复的握手和协商开销,平均可降低30%~50%的外部请求耗时 - 部分版本的配套代码还会调整
keepAliveMsecs参数,设置空闲连接的保持时长,适配Cloud Functions的实例生命周期,进一步提升连接复用的概率
注意:如果你的项目中使用的第三方请求库单独配置了自定义HTTP代理,需要单独为该代理开启keepAlive才能享受优化效果,全局配置不会覆盖自定义代理的参数
2. 代码的使用方式
仅需要将该代码片段放到你云函数代码的全局作用域,随函数部署即可,不需要主动调用:
- 代码修改的是Node.js运行时的全局HTTP代理配置,配置生效后当前函数实例内所有后续发起的HTTP/HTTPS请求(包括用
fetch、axios、原生http/https模块发起的请求)都会自动复用该配置,无需额外修改业务代码 - 该配置仅作用于当前部署的云函数运行环境,不会影响其他服务或本地运行的其他项目
内容的提问来源于stack exchange,提问作者madhu map
相关产品推荐
相关产品推荐

