公司有一个新项目,是一个广告竞价系统,后端在接收到前端的广告请求的时候,向多个广告平台,N 个广告位进行询价,获得结果排出最优的广告位进行展示。
这个需要需要同时向多个广告位并发询价(预计同时需要 50 个并发左右),得到结果后把广告位返回给前端。
想项目起步的时候先使用 webman 来开发这个兑价模块,如果项目成功,这个竞价模块就转为 golang ,中间就不经过 swoole 了。但因为团队里没有使用过 webman ,不知道性能是不是可以与 swoole 一样?是否也一样可以并发向多个不同的平台询价并等待返回呢?
求指点。
![]() |
1
codespots 16 小时 21 分钟前
webman2.1 版本已经支持协程了,可以试试
|
![]() |
2
javalaw2010 16 小时 5 分钟前
workerman/web 并非在整个请求的生命周期都是异步非阻塞的,你的业务逻辑本身还是同步阻塞 IO ,所以如果你的业务逻辑里面有慢 IO ,整个框架的 QPS 就会严重退化。
刚看到 1 楼的回复说是支持协程了,我还没了解过,不过 php 生态的协程其实有点拧巴。 |
![]() |
3
wbrobot 16 小时 4 分钟前
压测很难吗?
|
![]() |
4
sagaxu 13 小时 35 分钟前
这个压测一下不难,半天写代码,半天测试观察。
webman 缺点不在性能,而是不能调用各种传统的 client ,从数据库到对外 http 请求,全都得换异步库,异步回调写起来比较绕,写多了才能适应。如果不介意处处回调,性能肯定没问题。 如 1 楼所说,新版是支持协程了,但底层用的是 swoole 或 swow ,那还不如直接用 swoole 得了,多封装一层只会增加 bug 并且损失性能。swow 是 swoole 开发组的一个后生仔另起炉灶开发的,user base 没 swoole 大,不建议用。 |
![]() |
5
jeristiano 11 小时 11 分钟前
轮询 N 个广告平台业务可以利用 swoole 的协程 waitgroup 并发获取。hyperf 比较合适,后期如果转 golang,代码逻辑是一样的。
|