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

201 天前
 go522000

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

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

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

求指点。

1222 次点击
所在节点    问与答
5 条回复
codespots
201 天前
webman2.1 版本已经支持协程了,可以试试
javalaw2010
201 天前
workerman/web 并非在整个请求的生命周期都是异步非阻塞的,你的业务逻辑本身还是同步阻塞 IO ,所以如果你的业务逻辑里面有慢 IO ,整个框架的 QPS 就会严重退化。

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

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

如 1 楼所说,新版是支持协程了,但底层用的是 swoole 或 swow ,那还不如直接用 swoole 得了,多封装一层只会增加 bug 并且损失性能。swow 是 swoole 开发组的一个后生仔另起炉灶开发的,user base 没 swoole 大,不建议用。
jeristiano
201 天前
轮询 N 个广告平台业务可以利用 swoole 的协程 waitgroup 并发获取。hyperf 比较合适,后期如果转 golang,代码逻辑是一样的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1115433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX