Workerman发布5.1版本 Webman发布2.1版本
Workerman发布5.1版本
- 要求PHP>=8.1
- 提供Workerman\Coroutine类,底层自动适配Swoole、Swow、Fiber协程
- 提供协程相关的组件,例如 Context Channel Barrier Parallel WaitGroup Locker Pool等,底层自动适配Swoole、Swow、Fiber协程
workerman协程文档
Webman发布2.1版本
- 要求PHP>=8.1
- 依赖Workerman 5.1
- 支持Workerman 5.1的协程及组件
- 数据库、redis等库的改造
webman 2.1协程组件
webman v2.1 已经提供了以下组件,它们都集成了连接池,支持在协程和非协程环境下使用
注意事项
升级后不会自动使用协程,需要设置eventLoop才会开启协程,直接升级对业务没有影响。
如果有使用数据库 redis等组件,需要同步升级,参见升级到v2.1
相关文档
升级到v2.1
webman协程
最后
协程并非银弹,它有自己的局限性,引入协程会带来全局变量污染问题、资源竞争问题、调试困难问题。
从压测数据来看,在充分利用CPU的情况下,引入协程极限性能一般会下降10-20%。
但是在有慢IO业务中,引入协程确实会大幅度提升性能。
建议
- 协程不是必须的
- 旧项目不建议无脑开启协程,这有可能带来因全局变量污染问题导致的数据错乱
- 新项目可以考虑使用协程,但是没有必要为了协程而使用协程
- 旧项目遇到慢IO相关的业务可以考虑单独启动一组进程开启协程处理,参考webman协程与非协程混合部署
19个回答
牛啊
👍!
牛牛牛
给力!只要eventloop不配置就不会启用协程吧
升级升级
这个必需顶!
支持
棒呆~
6666
🐂 Db
十分强大
对心智要求还好
牛
牛牛牛
6666
大佬,什么叫有慢io的业务?操作数据库,有redis请求,还有登录和支付需要调用第三方接口,这些算慢io吗?看文档,没有提供根据协程id获取协程上下文的方法,如果用的swoole驱动,协程里有协程,怎么获取父协程上下文
帅,直接升级
强的离谱!
后面的几个小升级,对我来说都用不上😄
👍👍