PHPer 现在写后台业务 实现高并发只有 swoole 吗

2023-11-29 17:37:51 +08:00
 csulyb
说说现在是什么架构,
是用 php-fpm 多进程模式, 如何处理 io 并发低的问题?
还是 swoole 或者 CLI 模式来处理的
14505 次点击
所在节点    PHP
117 条回复
seth19960929
2023-11-29 18:21:22 +08:00
swoole 不是无缝迁移的, 你以为是把 php-fpm 换成 swoole 运行时? 实际上是要把 php 代码 换成 swoole 写法的代码
hefish
2023-11-29 18:30:16 +08:00
不是的亲,还可以自己开发新的方案。
encro
2023-11-29 18:33:02 +08:00
不知道什么是高并发,我一个 PHP 的项目,4h8g 一天几万单,几千万请求,几百万用户,几亿记录。
lbp0200
2023-11-29 18:46:01 +08:00
后台业务,高并发
有几十万人登陆后台吗?
liqinliqin
2023-11-29 19:08:31 +08:00
推荐 Swoole
liuzhaowei55
2023-11-29 19:49:16 +08:00
@csulyb 这不是啥问题,除非现在你是单实例部署,不然早该遇到这个问题了
gavy41
2023-11-29 20:02:01 +08:00
我也在 workman 和 swoole 之间选择,似乎 workman 更成熟
iomect
2023-11-29 20:10:05 +08:00
我觉得你可以先说一下你的高并发是多高...
我接触的所有项目在没 bug 的情况下出现高延迟都是数据库扛不住导致的 没有其他情况....
ding2dong
2023-11-29 20:13:56 +08:00
原生 PHP 框架单机跑 1000QPS 很难吗?你不要用它做基础服务就行,php 是用来做业务的。
vescape920
2023-11-29 20:28:18 +08:00
推荐 webman ,基于 workerman 的框架 后台界面安装 webman-admin 即可。 选择用 swoole 的话就 hyperf 框架,可以使用 MineAdmin ,基于 hyperf+vue 的后台管理
kakki
2023-11-29 20:48:26 +08:00
上过 swoole 的车,不建议,什么库他都得劈个叉做个 swoole 定制版,这不是脑裂是什么?性能敏感还不如直接 golang ,懒得学你就用 webman ,舒服还得是 Laravel ,不折腾。
lyhiving
2023-11-29 21:07:37 +08:00
swoole 貌似生态不好,一直不温不火
owen800q
2023-11-29 21:17:13 +08:00
@iomect 2W QPS
chenchengbin
2023-11-29 21:19:01 +08:00
roadrunner 加持,swoole 的代码修改成本太高, 需要自己的生态
kingjpa
2023-11-29 21:28:28 +08:00
我觉得大概率是你 sql 上的问题, 目前做项目到最后发现都是 压力全在 sql 查询上,
把常用数据缓存到内存 就可解决大部分问题。

如果确实是数据库这里有优化不够,那你用啥语言都区别不大。
crynocry
2023-11-29 22:53:16 +08:00
@kakki swoole 走的 hook 所有 io 函数去切换 io .. 它的唯一优势就是可以直接用 fpm 的库 你应该没深度用过
lp7631010
2023-11-29 23:10:12 +08:00
高并发优化大多数情况下 是在缓存和 sql 优化或者在架构、流程设计以及代码优化上动手 和语言的关系 不能说没有 只能说没那么大吧。。。语言再快 写的一坨屎又有什么用 ! 说到底还是看人!语言和语言(同样的代码)本身差的那几毫秒对于很多场景来说没那么大影响吧! php 的话 开启 opcache 或者 swoole 、workerman
sarices
2023-11-29 23:13:46 +08:00
瓶颈大概出在数据库,先优化数据库看看
kakki
2023-11-29 23:25:37 +08:00
@crynocry 很多库都是单独进行过协程化的,不是直接拿过来就用的。
csulyb
2023-11-30 07:30:22 +08:00
@encro #23
@ding2dong #29
说的很有道理。
php fpm 是访问拉起一个进程,如果同时 1k 用户请求一个数据查询服务器,意味着这 1k 的进程对数据库发起 1k 个 tcp 连接,即使是用 redis ,也是 1k 个客户端进行连接,实际中是这样用的吗?

线程池、连接池类似的技术完全用不上。

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

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

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

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

© 2021 V2EX