go522000
V2EX  ›  问与答

请问一下,有使用过 workerman 与 webman 的吗?性能真的这么好吗?

  •  
  •   go522000 · Mar 3, 2025 · 1744 views
    This topic created in 440 days ago, the information mentioned may be changed or developed.

    公司有一个新项目,是一个广告竞价系统,后端在接收到前端的广告请求的时候,向多个广告平台,N 个广告位进行询价,获得结果排出最优的广告位进行展示。

    这个需要需要同时向多个广告位并发询价(预计同时需要 50 个并发左右),得到结果后把广告位返回给前端。

    想项目起步的时候先使用 webman 来开发这个兑价模块,如果项目成功,这个竞价模块就转为 golang ,中间就不经过 swoole 了。但因为团队里没有使用过 webman ,不知道性能是不是可以与 swoole 一样?是否也一样可以并发向多个不同的平台询价并等待返回呢?

    求指点。

    Supplement 1  ·  Mar 3, 2025
    谢谢各位的回复,我再比较一下 workerman/webman 和 swoole/hyperf ,看看哪个更适合这个业务。
    5 replies    2025-03-03 18:00:32 +08:00
    codespots
        1
    codespots  
       Mar 3, 2025
    webman2.1 版本已经支持协程了,可以试试
    javalaw2010
        2
    javalaw2010  
       Mar 3, 2025
    workerman/web 并非在整个请求的生命周期都是异步非阻塞的,你的业务逻辑本身还是同步阻塞 IO ,所以如果你的业务逻辑里面有慢 IO ,整个框架的 QPS 就会严重退化。

    刚看到 1 楼的回复说是支持协程了,我还没了解过,不过 php 生态的协程其实有点拧巴。
    wbrobot
        3
    wbrobot  
       Mar 3, 2025
    压测很难吗?
    sagaxu
        4
    sagaxu  
       Mar 3, 2025
    这个压测一下不难,半天写代码,半天测试观察。

    webman 缺点不在性能,而是不能调用各种传统的 client ,从数据库到对外 http 请求,全都得换异步库,异步回调写起来比较绕,写多了才能适应。如果不介意处处回调,性能肯定没问题。

    如 1 楼所说,新版是支持协程了,但底层用的是 swoole 或 swow ,那还不如直接用 swoole 得了,多封装一层只会增加 bug 并且损失性能。swow 是 swoole 开发组的一个后生仔另起炉灶开发的,user base 没 swoole 大,不建议用。
    jeristiano
        5
    jeristiano  
       Mar 3, 2025   ❤️ 1
    轮询 N 个广告平台业务可以利用 swoole 的协程 waitgroup 并发获取。hyperf 比较合适,后期如果转 golang,代码逻辑是一样的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   923 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 19:01 · PVG 03:01 · LAX 12:01 · JFK 15:01
    ♥ Do have faith in what you're doing.