请问一下,有使用过 workerman 与 webman 的吗?性能真的这么好吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
go522000
V2EX    问与答

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

  •  
  •   go522000 221 天前 1245 次点击
    这是一个创建于 221 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    求指点。

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

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

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

    如 1 楼所说,新版是支持协程了,但底层用的是 swoole 或 swow ,那还不如直接用 swoole 得了,多封装一层只会增加 bug 并且损失性能。swow 是 swoole 开发组的一个后生仔另起炉灶开发的,user base 没 swoole 大,不建议用。
    jeristiano
        5
    jeristiano  
       221 天前   1
    轮询 N 个广告平台业务可以利用 swoole 的协程 waitgroup 并发获取。hyperf 比较合适,后期如果转 golang,代码逻辑是一样的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3646 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 00:48 PVG 08:48 LAX 17:48 JFK 20:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86