- 主题:请教一下哪个web service启动最快?
应用场景是基于 aws lambda 做 serverless,做成 web service 再包一层消息转发,这样就不会绑在 aws 平台上了。冷启动时间比较敏感,所以希望 web service 本身的启动能尽量省时间。
流行框架哪个启动更快?我对 py 的框架基本不了解,fastapi? flask?
--
FROM 222.153.59.*
实际上的逻辑是,有个正经的 web service 在先,能很方便的转成 lambda 用而已。现在也是处于对比的阶段,毕竟目前其它语言的实现也都有正经的框架的,这么搞也不公平
【 在 hgoldfish 的大作中提到: 】
: 直接用 python 标准库的 http server 啊。
: class MyServiceHandler(BaseHttpRequestHandler):
: timeout = 30.0 # 设置 timeout 很重要
: ...................
--
FROM 222.153.59.*
目前用了 fastapi,冷启动到返回结果要 1.6s+,目前 lambda 默认只能用 py3.9
作为对比,node18 用了 fastify,冷启动到返回在 930ms 左右,dotnet6 多用了一倍内存还要将近 4s
【 在 eGust 的大作中提到: 】
: 应用场景是基于 aws lambda 做 serverless,做成 web service 再包一层消息转发,这样就不会绑在 aws 平台上了。冷启动时间比较敏感,所以希望 web service 本身的启动能尽量省时间。
: 流行框架哪个启动更快?我对 py 的框架基本不了解,fastapi? flask?
--
FROM 203.184.25.*
反正我是尽量避免在应用里直接使用 aws 东西,而是封装一层再用
【 在 hongyan2022 的大作中提到: 】
: 题外:
: -- 不会绑在 aws 平台上
: 难啊 各个云 绑的都挺结实的
: ...................
--
FROM 203.184.25.*
跟 pythone 没关系
【 在 tinytoon 的大作中提到: 】
: AWS刚发布了snapstart
--
FROM 222.153.59.*
服务一直跑着就失去用 lambda 的意义了。实际上1秒左右的响应时间完全可以接受的
rust 版也是将近1s的响应时间,不过是从 container 启动,还多加载了 db 的驱动,做的事情也稍微多一些,不太好直接比较。我也就只能自己玩玩看,我们村了里不可能推它的
【 在 Erlang 的大作中提到: 】
: 这个没办法,还是要靠keep warm。再优化也优化不到哪去,除非改到Go,Rust
--
FROM 222.153.59.*
flask 跟 fastapi 哪个启动更快一些?反正我是不管了,数字我是有了,如果同事里谁觉得有意见可以自己测
另外,aws 对 python 的支持也不咋样,现在最新的 runtime 还是 3.9,两年多前发布的版本了,而 node 18 正式进入 lts 不到一个月就已经支持了。
昨天跟另外一个华人 devops 同事聊天,他也打算换用 node 写 lambda 了,说是 py 的支持问题太多了。前两个月他还抄了一段发 slack 的 node 代码,没搞定找我,我还解释了半天 async/await 的执行流程……
【 在 RunningOn 的大作中提到: 】
: flask据我所知是py里能谈得上是流行“框架”的最轻量的之一了,如果不是最轻的。
: py自带的最多是个API,功能比较少,写起来比较费事。
: 在意冷启动时间的话,基本只有rust一个选择了,框架的选择很多,C++貌似没啥好的选择。
: ...................
--
FROM 222.153.59.*
你这是网络不好吧……0.5s 也太久了
【 在 hongyan2022 的大作中提到: 】
: 很久以前 我测过 tcp connection建立 模糊印象中 需要 0.5 ~ 2.5 秒 而且如果同时大量建链接的话 超时异常会出现
: 冷启时 硬件 驱动 OS...上的损耗 避不开的
--
FROM 222.153.59.*