开发者社区 > 云原生 > Serverless > 正文

请问函数计算有没有类似的优化机制:当我在函数计算的handler程序中,通过http请求了另一个服务

请问函数计算有没有类似的优化机制:当我在函数计算的handler程序中,通过http请求了另一个服务, 这个请求是以promise异步发送的,但是我没用用这个请求的结果, 所以函数计算会延迟这个请求的发送? 因为我从日志看,从程序执行到那里,到最终发送该异步请求,间隔了48秒

展开
收起
大圣东游 2023-06-08 10:23:59 89 0
5 条回答
写回答
取消 提交回答
  • await 或者 finally里再结束函数。异步调用响应很快的。不然实例就会被直接冻结,然后等下次恢复的时候才发出去

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-06-08 17:59:07
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在函数计算中,如果你在函数处理程序中发起了异步 HTTP 请求,但是没有等待该请求返回结果,函数计算服务不会自动优化该请求的发送时间,也不会对该请求进行任何特别的延迟处理。

    当你在函数处理程序中发起异步 HTTP 请求时,你需要考虑请求的延迟和并发限制。由于函数计算是基于事件驱动的服务,每个事件执行都会创建一个新的函数实例,因此如果你的函数处理程序中发起了大量的异步 HTTP 请求,可能会导致请求延迟或并发请求过多而被限制。

    为了优化异步 HTTP 请求的发送时间,你可以考虑使用一些优化方法,例如:

    通过使用 HTTP/2 协议来提高请求的并发性和效率。HTTP/2 支持多路复用和头部压缩等特性,可以显著提高请求的吞吐量和响应速度。

    使用连接池来管理 HTTP 连接,避免重复创建和销毁连接,减少连接建立和释放的开销,提高请求的效率。

    对于需要等待异步 HTTP 请求返回结果的场景,可以使用 Promise 或 async/await 等异步编程模型来处理请求,避免阻塞函数的执行。

    总之,在函数计算中,如果你需要在函数处理程序中发起异步 HTTP 请求,需要考虑请求延迟和并发限制,并采取一些优化方法来提高请求的效率和响应速度。

    2023-06-08 17:41:45
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    是的,阿里云函数计算平台具有类似的优化机制,称为"冷启动优化"。当您第一次运行某个函数或者已经超过一定时间没有运行某个函数时,函数计算会将该函数实例释放掉以降低成本,此时再次请求该函数就需要重新启动新的函数实例。

    函数实例在启动时会执行一些初始化工作,例如加载代码和运行环境等,这些操作耗费的时间称为"冷启动时间"。为了优化性能和降低成本,函数计算平台会对某些情况下的函数实例进行保留,以避免重复的冷启动时间。

    对于您所描述的情况,如果您在函数计算的 handler 中通过 HTTP 请求另一个服务,并且您没有使用其结果,该请求可能会被函数计算平台视为无效操作而被延迟发送。因为函数计算平台会尽量避免不必要的网络连接,从而提高函数的响应速度和性能。

    如果您确实需要在 handler 中发送异步请求但又不需要等待其结果,您可以使用 async/await 或者 Promise 的方式来发送异步请求,并在请求发送成功后立即结束函数的执行。这样可以让函数计算平台更好地控制异步请求,避免无效操作和不必要的网络连接,从而提高函数的性能和性价比。

    2023-06-08 16:08:22
    赞同 展开评论 打赏
  • 函数计算是一种事件驱动的计算服务,其执行时间与请求的响应时间、网络延迟等因素有关,因此您所描述的情况是可能存在的。

    为了优化函数计算的性能,您可以考虑以下几点:

    1. 尽量减少不必要的网络请求,避免请求过多导致函数计算执行时间过长。

    2. 如果您需要进行异步请求,可以使用 Promise.all() 方法等方式,将多个请求同时发送,减少请求的响应时间。

    3. 使用函数计算的预热功能,可以在函数第一次被调用前提前加载函数环境,减少函数执行时间。

    4. 对于需要频繁调用的函数,可以考虑使用函数计算的预留并发功能,预留一定数量的并发资源,提高函数的响应速度和并发处理能力。

    总之,针对您所描述的情况,建议您检查一下代码逻辑,尽量减少不必要的网络请求,并考虑使用一些优化方式来提高函数计算的性能。

    2023-06-08 11:02:07
    赞同 展开评论 打赏
  • GitHub https://github.com/co63oc/cloud

    查看是否有其他逻辑占用时间,比如连接网络,等待接口等

    2023-06-08 10:41:20
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载