V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
go522000
V2EX  ›  问与答

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

  •  
  •   go522000 · 17 小时 24 分钟前 · 379 次点击

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

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

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

    求指点。

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

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

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

    如 1 楼所说,新版是支持协程了,但底层用的是 swoole 或 swow ,那还不如直接用 swoole 得了,多封装一层只会增加 bug 并且损失性能。swow 是 swoole 开发组的一个后生仔另起炉灶开发的,user base 没 swoole 大,不建议用。
    jeristiano
        5
    jeristiano  
       11 小时 11 分钟前
    轮询 N 个广告平台业务可以利用 swoole 的协程 waitgroup 并发获取。hyperf 比较合适,后期如果转 golang,代码逻辑是一样的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   981 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 21:11 · PVG 05:11 · LAX 13:11 · JFK 16:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.