推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
longmeier90
V2EX  ›  Python

web 开发有 Python 的 sanic 的异步框架还有必要转 go 吗

  •  
  •   longmeier90 · Apr 18, 2022 · 5736 views
    This topic created in 1665 days ago, the information mentioned may be changed or developed.

    之前都说 web 服务开发都是的瓶颈多是网络 IO 与磁盘 IO 造成的。 以前的 python 同步框架并发高的时候会很慢,但是异步框架 sanic 性能很高可以与 gin 相媲美。 那么还有必要换 go 语言吗,自己对 go 还没有做深入了解,所以想请大佬一起聊聊,go 与 python 异步开发的差异性。

    22 replies  •  2023-07-06 11:57:09 +08:00
    fgwmlhdkkkw
    fgwmlhdkkkw
    Apr 18, 2022
    1
    web 服务的性能瓶颈应该是数据库,前面的再快也就那样吧……
    但是最大的瓶颈还是业务本身。
    不过对于做技术的人来说,技多不压身嘛~
    westoy
    westoy
    Apr 18, 2022❤️1
    2
    你去看看 sanic 列出的三方扩展, 有几个在一两年内还有维护的

    python 从来不缺协程库, 20 年前就有 stackless 和 twisted , 十几年前 eventlet , 十年前 gevent

    库支持从来不是问题, 完整的库生态支持才是问题......
    4BVL25L90W260T9U
    4BVL25L90W260T9U
    Apr 18, 2022
    3
    难道不应该是团队用啥你用啥……
    ClericPy
    ClericPy
    Apr 18, 2022
    4
    粗略看单核效率的话, Python 和 golang 的协程并发性能差距其实并不大, 多核差距开多核也能拉近. 就拿现在比较主流的 Fastapi 一两万 QPS 的性能来说, 日常根本到不了这种量级的压力, 等到了这个压力的时候, 自然也有新的认识, 估计也不会再问出这种问题

    总而言之, 选最擅长的, 其次再考虑业界主流(主要容易招人). 先顺应团队生态, 再考虑顺应市场生态, 前者决定生存, 后者决定发展
    est
    est
    Apr 18, 2022
    5
    你们瓶颈都在 web 框架上?

    俺这还是在 db 上。
    jones2000
    jones2000
    Apr 18, 2022
    6
    主要看能不能通过提升机器性能来,解决问题,如果可以。 升级硬件。 开发是没有办法中的办法了, 花十几 W 升级硬件多美,你用十几 W 能招几个人, 下次开人还要 N+1 。
    kingjpa
    kingjpa
    Apr 18, 2022
    7
    好尴尬,我这里除了压测,还没遇到瓶颈。。。
    longmeier90
    longmeier90
    OP
    Apr 18, 2022
    8
    @kingjpa 我们太菜了,嘎嘎嘎...
    liuxingdeyu
    liuxingdeyu
    Apr 18, 2022❤️1
    9
    我觉得,学一门语言更多是为了学这门语言的主流编程思想
    lux182
    lux182
    Apr 18, 2022
    10
    sanic 周边似乎有点少,go 不熟悉。
    neoblackcap
    neoblackcap
    Apr 18, 2022❤️2
    11
    go 一整个语言就是协程框架,sanic 没法跟它比性能的。
    只要是 go 生态的,那么就已经是进入了它的协程生态。python 生态却不一样,有很多同步库的。
    但是如果你因为这个问题来问选什么的话,那么我建议你不用选。你自己熟悉什么语言就继续用什么语言就可以了。我还说 Rust 的 actix-web 性能更强,难道你还要去学 Rust?

    一般业务的性能差异,我觉得还轮不到你来考虑这些框架的性能满足不了你。这些框架哪个不能轻松解决 C10K 问题?而且 C10K 都是 20 年前的问题了。但是你的生产环境有 C10K 问题吗?等你的业务上了 1 万并发再来考虑吧。
    raycool
    raycool
    Apr 18, 2022
    12
    以前我用 tornado 写过几个生产项目,不过对并发要求都不高。
    roundgis
    roundgis
    Apr 18, 2022 via Android
    13
    又不是不能用。。。
    dilu
    dilu
    Apr 18, 2022
    14
    相信我,99.99%的项目,其实都不会有性能问题。
    iyaozhen
    iyaozhen
    Apr 18, 2022❤️1
    15
    主要是生态(就业) 这么说吧,你搞 Python Web ,这个公司,这个产品可能都没问题,一旦裁员变动,就肯定没有 Go Web 的好找工作
    nonduality
    nonduality
    Apr 18, 2022
    16
    IG 这些年来始终用 Django ,除了优化性能,就是加机器,而不是改用语言或框架。
    venicid
    venicid
    Apr 18, 2022
    17
    不用转,不要来,学 python 挺好的(狗头)别和我抢饭碗
    ToBeHacker
    ToBeHacker
    Apr 19, 2022
    18
    你用了异步,所有的 IO 都得用异步库,目前这方面 Python 的生态还是不够
    Kobayashi
    Kobayashi
    Apr 19, 2022
    19
    没有,曾经专注于 asyncio 研究了各种异步框架、事件循环代码。但后来入职才发现,很多时候没必要看的那么远,绝大多数的业务根本达不到那样的并发压力。面试的时候曾经面过 2 个做小说的,一个由 Python 转了 Go ,说是用户量大了。另一个就是老 Python 单体项目,缓存+限流,运营时间比前者长,业务流量也比前者大。这是从业务角度来看问题。除非你是什么大厂的主项目,一般都没有那么大的并发。

    从技术角度,我觉得都行,吃透一个就够了。实际上大多数人对下边原理都不了解。我见过选 Sanic 调用接口触发模型训练的,觉得 Sanic 快,但根本没看清场景。捕蛇者说播客里,有个来自知乎主持人因为写不出 ASGI 中间件,就觉得 ASGI 协议有问题……

    从钱的角度,可能是 Golang 。
    rust
    rust
    Apr 19, 2022
    20
    你们已经触及到 Sanic 的性能瓶颈了吗?
    mlbjay
    mlbjay
    Jul 6, 2023
    21
    可以读下我的文章: https://blog.csdn.net/weixin_42359693/article/details/131460845
    局限不是 Sanic 框架,是整个 Python 异步生态的问题。
    纯 Sanic 框架很快,虽然远远比不上 Gin 之类的。但是痛点是 一个高频使用的库是同步 io ,就会阻塞整个协程,进而 消耗掉 Sanic 带来的性能提升,一旦设计不好,可能导致基于异步 io 框架的并发性能 还不如 线程池并发。
    基于线程池并发开发,还更容易排查 bug ,异步 io 库一旦出问题,非常诡异。
    mlbjay
    mlbjay
    Jul 6, 2023
    22
    @Kobayashi 大实话,我的同感也差不多,Golang 带来的性能提升 和 远不如 Python 的开发效率,有利有弊。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   659 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 18:24 · PVG 02:24 · LAX 10:24 · JFK 13:24
    ♥ Do have faith in what you're doing.