V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wh469012917
V2EX  ›  程序员

Swoole 下的 Hyeprf 框架,现在的维护计划怎么样?

  •  
  •   wh469012917 · 16 小时 13 分钟前 · 1525 次点击
    我们的业务,是在 2020 年从 Laravel 迁移到 Hyperf 的,当时迁移的原因是 Laravel 的性能,当时是没有 Octane 组件的,迁移后确实眼前一亮。
    目前 5 年多过去了,Hyeprf 虽然还在更新,但是明显能感觉到作者积极性不如以前了,github 上提的 issue ,几乎都不鸟你,能理解这种开源项目没有收入,长时间的付出没有回报,积极性下降是必然的。

    所以不知道有没有人了解,hyperf 框架未来的发展计划怎么样?我们的业务是机构公益性质的,所以不存在业务倒闭的情况,目前有考虑考虑迁移到 go 语言,但是得完全重写,投入的时间精力是否值得?
    60 条回复    2025-09-20 00:42:38 +08:00
    justfindu
        1
    justfindu  
       16 小时 8 分钟前
    我们也有想法想要迁移, 虽然有 Octane , 但是性能上还是差一点. 有没有什么坑需要填的
    wh469012917
        2
    wh469012917  
    OP
       16 小时 6 分钟前
    @justfindu 你们是用的 Laravel 吗?如果是 laravel 迁移到 hyperf 不推荐,目前看 hyperf 维护很不积极,迁移到 go 倒是可以
    lait123
        3
    lait123  
       16 小时 6 分钟前
    在用着 hyperf 后台框架 Mineadmin,感觉还行.hyperf 维护确实比较懈怠这个无解的. 但是大问题确实没有啥. 毕竟 php 热度都下降这么多了. 用爱发电的人肯定少. 生态肯定不能和 laravel 比. 转 go 考虑成本就行.

    至于其他 php 框架推荐啥的,建议直接看 https://packagist.org/ 的下载量对比就知道了.php 语言下 没有太多选择了. 现在就是 laravel tp hyperf. 至于 webman 只能说下载量摆着.

    如果你是员工 推荐转 go 给同事们多一条路子走. php 就用来搞钱吧.
    justfindu
        4
    justfindu  
       15 小时 54 分钟前
    转 go 根本不是路子, 跨度太大, 除非新业务.
    wh469012917
        5
    wh469012917  
    OP
       15 小时 53 分钟前
    目前维护比较懈怠是一回事,随着时间推移,未来肯定是会越来越懈怠,就怕有一天重走 easyswoole 这些老路,直接删库跑路了。对我们的业务长远来说,转 go 应该是最佳的路,但就是投入的精力问题,目前其实算是独立开发者,没有员工
    wh469012917
        6
    wh469012917  
    OP
       15 小时 52 分钟前
    @justfindu 对我个人来说问题不大,工作上目前主要也是 go 了,php 就剩一下 hyeprf 框架在维护。如果你们用的是 laravel ,强烈不建议迁移 hyperf ,很有可能,还没迁移完,hyperf 就结束了
    liqinliqin
        7
    liqinliqin  
    PRO
       15 小时 52 分钟前
    Swoole 正在准备一个大招 PHP AOT,让任意 PHP 代码直接生成二进制,比如 WordPress ,直接一个命令行./wordpres
    jason56
        8
    jason56  
       15 小时 46 分钟前
    我们不用框架,直接裸 swoole 写,然后生成二进制分发
    BeforeTooLate
        9
    BeforeTooLate  
       15 小时 39 分钟前
    所以问题在于怕没人维护跑路了,后期没法修复 bug ,性能上面我感觉不太可能瓶颈再语言上吧,大部分再 IO,数据库。
    nicoljiang
        10
    nicoljiang  
    PRO
       15 小时 36 分钟前
    @liqinliqin swoole 真是好东西,但我认为独木难支是迟早的事情。PHP 已经被 laravel 带得太坏了。
    fuchish112
        11
    fuchish112  
       15 小时 31 分钟前
    不是计划年底发 3.2 嘛
    liqinliqin
        12
    liqinliqin  
    PRO
       15 小时 31 分钟前   ❤️ 1
    @nicoljiang #10 我要给他再掰直,就用这个 aot
    liqinliqin
        13
    liqinliqin  
    PRO
       15 小时 31 分钟前
    @fuchish112 #11 我给他计划改了,必须掰直
    wh469012917
        14
    wh469012917  
    OP
       15 小时 17 分钟前
    @BeforeTooLate 性能其实问题不大,主要怕没人维护跑路,最近我提了好几个 issue ,全都没结果。甚至连是不是框架 bug 都不知道,只能自己想办法解决
    wh469012917
        15
    wh469012917  
    OP
       15 小时 16 分钟前
    @jason56 swoole 今年,其实也只发了 2 个 bug fix 的版本
    wh469012917
        16
    wh469012917  
    OP
       15 小时 16 分钟前
    @fuchish112 看样子是凉了
    zhumengyang
        17
    zhumengyang  
       15 小时 9 分钟前
    年度发布 3.2
    fuchish112
        18
    fuchish112  
       14 小时 24 分钟前
    @wh469012917 #16 那不至于,swoole6.1 预计国庆发
    Smileh
        19
    Smileh  
       14 小时 20 分钟前
    在维护啊, 还有专门的 swoole 群 里面大佬都在
    wh469012917
        20
    wh469012917  
    OP
       14 小时 17 分钟前
    @Smileh hyperf 维护肯定还有,但积极性大不如前了
    jason56
        21
    jason56  
       14 小时 13 分钟前
    @wh469012917 听说 swoole-cli 6.1 windows 和 macos 的兼容性会得到极大改善,团队做了大量单元测试。
    lakeme
        22
    lakeme  
       14 小时 7 分钟前
    hyperf 该有的也都有了, 没什么需要更新的了
    pegziq
        23
    pegziq  
       14 小时 4 分钟前
    @nicoljiang PHP 已经被 laravel 带得太坏了。
    这个为什么?
    ferock
        24
    ferock  
    PRO
       14 小时 1 分钟前
    迁移吧,别说 swoole 了,php 整体氛围都很懈怠

    java 、go 都可以适合你
    elevioux
        25
    elevioux  
       13 小时 57 分钟前
    新业务新方法。旧业务,放着咯,别出问题就行,撑不住再说。
    wh469012917
        26
    wh469012917  
    OP
       13 小时 52 分钟前
    @lakeme 倒不是功能上的问题,功能其实都能满足业务开发了,就是对未来维护上的担忧
    wh469012917
        27
    wh469012917  
    OP
       13 小时 52 分钟前
    @elevioux 我是自己的业务,不是企业里面的,所以肯定得上心
    wh469012917
        28
    wh469012917  
    OP
       13 小时 51 分钟前
    @ferock 考虑过很久,就是得完全重写,时间成本极高,第一次就是从 laravel 迁移到 hyperf ,都花了不少时间
    lxqxqxq
        29
    lxqxqxq  
       13 小时 23 分钟前
    机构公益性质, 独立开发者
    时间成本极高 ,对未来维护上的担忧

    大可不必
    codersdp1
        30
    codersdp1  
       13 小时 21 分钟前
    我们也是 20 年从 laravel 转型到 go ,现在全公司都用 go 了.
    codersdp1
        31
    codersdp1  
       13 小时 18 分钟前
    @wh469012917 #5 曾今何时,easyswoole 也是 php 之光
    wh469012917
        32
    wh469012917  
    OP
       13 小时 15 分钟前
    @lxqxqxq 就以我们目前来说,遇到的一个问题,负载一高就死锁,然后 worker 进程挂掉,master 进程主动退出,Pod 死掉,等待集群再次拉起。一直都没解掉
    javalaw2010
        33
    javalaw2010  
       13 小时 7 分钟前   ❤️ 1
    渐进式迁移,当时我从 PHP 迁移到 go 的时候是这么做的,在 go 里面实现了一个反向代理,go 项目里如果路由匹配不到,就把请求代理给反向代理的后端。然后就是一个接口一个接口的慢慢迁移咯。
    canteon
        34
    canteon  
       13 小时 0 分钟前
    那个框架不是搞 kpi 的产物吗?这敢用
    xiuming
        35
    xiuming  
       12 小时 41 分钟前
    @canteon swoole 搞的 kpi 产物 那有段时间一下涌现很多基于 swoole 框架 估计想打造一个爆款 现在感觉没一个爆款
    hiqxy
        36
    hiqxy  
       12 小时 31 分钟前
    公司还能撑很久的话 就转吧,不然没必要
    shuimugan
        37
    shuimugan  
       12 小时 13 分钟前
    现在只是为当时的选择还债而已,5 年前就应该迁移到 go 了,再不济迁移到 nodejs 也好过继续 php 。
    你现在迁移到 go 有个好处就是 AI 写 go 的能力几乎是溢出的,比其它语言准确性高很多,在 AI 加持下迁移应该很快
    Danswerme
        38
    Danswerme  
       11 小时 0 分钟前
    @shuimugan 请教下为什么说“ AI 写 go 的能力几乎是溢出的”呢?是因为 go 的开源代码非常多吗?
    kxg3030
        39
    kxg3030  
       9 小时 43 分钟前
    @canteon 没用过就不要开黄腔 我们公司 4000 个人 一直都用的全是 hyperf webman 最高并发也就 300 稳定的一匹
    kxg3030
        40
    kxg3030  
       9 小时 39 分钟前
    最早是 swoft 后来是 hyperf 都很好用 swoft 更顺手简单一些 瑕不掩瑜
    wh469012917
        41
    wh469012917  
    OP
       9 小时 38 分钟前
    @hiqxy 我是自己的项目,不用担心项目死掉的问题,服务器都是按照 5 年起买
    wh469012917
        42
    wh469012917  
    OP
       9 小时 33 分钟前
    @kxg3030 想问下你们 300 并发的话,机器的配置怎么样?我们是 2 台的 4 核 8G 的机器,并发稍微高一些,就大量的死锁出现,然后服务奔溃
    wh469012917
        43
    wh469012917  
    OP
       9 小时 26 分钟前
    @shuimugan ai 写问题不大,ai 出来的主要是代码的风格不好把控,风格得以我们的习惯为主
    kxg3030
        44
    kxg3030  
       9 小时 25 分钟前
    @wh469012917 能出现死锁 只能说代码质量堪忧 4H8G 中规中矩
    wh469012917
        45
    wh469012917  
    OP
       9 小时 24 分钟前
    @javalaw2010 go 有选用什么框架吗?按目前情况看,我应该也会考虑迁移,后台管理的接口就继续用 hyperf ,前台的 api 接口的话切换到 goframe 了
    promiser3d
        46
    promiser3d  
       9 小时 22 分钟前
    你们公益性质的产品,访问量如果不是特别大的话,Laravel 本身也没啥问题吧。
    wh469012917
        47
    wh469012917  
    OP
       9 小时 22 分钟前
    @kxg3030 可以帮忙看看这两个 issue ,都是我提的关于死锁的问题,目前还是没定位原因:
    https://github.com/hyperf/hyperf/issues/7517
    https://github.com/hyperf/hyperf/issues/7432

    看看是不是我们代码质量垃圾导致的死锁
    wh469012917
        48
    wh469012917  
    OP
       9 小时 20 分钟前
    @promiser3d 日活跃用户 3000 左右,访问量不多的 50w 左右,整体算很低
    wh469012917
        49
    wh469012917  
    OP
       9 小时 18 分钟前
    @kxg3030 你们有用 resource 组件吗?目前调试发现,resource 组件需要创建大量对象,所以性能及其拉垮,暂时没想到好的办法解决
    kxg3030
        50
    kxg3030  
       9 小时 12 分钟前
    @wh469012917 已经说的很清楚了 所有协程都阻塞在等待数据 阻塞了就默认是死锁 revAll 应该不会自动让出时间片 这在 go 里面也是一样的 所有协程都阻塞了不就死锁了么 这是你使用方式的问题
    wh469012917
        51
    wh469012917  
    OP
       9 小时 2 分钟前
    @kxg3030 就以这段代码为例子,daily_sentence 、category 表总数据量低于 20 条,也会出现死锁,出现死锁的时候 mysql 和 redis 的资源利用率不超过 20%,:
    ```php
    #[GetMapping(path: '')]
    public function getSpecifyDailySentence(RequestInterface $request)
    {
    $date = $request->input('publish_at', date('Y-m-d'));
    $dailySentence = DailySentence::where('publish_at', $date)->with(['category'])->first();
    if (!$dailySentence) {
    $dailySentence = DailySentence::orderBy('publish_at', 'desc')->with(['category'])->first();
    }
    return new DailySentenceResource($dailySentence);
    }
    ```

    想请教下,我这样是哪里使用方法有问题?
    canteon
        52
    canteon  
       8 小时 55 分钟前
    @kxg3030 对不起从来没用过,本来就是内部 kpi 产物,你用就用么。从来也没见过选型选 kpi 产物的
    kxg3030
        53
    kxg3030  
       8 小时 52 分钟前
    @canteon 目光短浅 我都懒得跟你解释
    kxg3030
        54
    kxg3030  
       8 小时 50 分钟前
    @wh469012917 DailySentenceResource 这啥玩意
    wh469012917
        55
    wh469012917  
    OP
       8 小时 48 分钟前
    canteon
        56
    canteon  
       7 小时 52 分钟前
    @kxg3030 嗯确实目光短浅
    BeautifulSoap
        57
    BeautifulSoap  
       7 小时 41 分钟前
    PHP 的官方异步( True Async )已经在路上了什么时候,与其考虑转 go ,真不如再等等官方的异步。官方异步出来之后基于官方异步的网络框架肯定维护是不用担心的,swoole 这些异步可能真的会受到很大影响
    https://wiki.php.net/rfc/true_async
    maigebaoer
        58
    maigebaoer  
       7 小时 5 分钟前 via Android
    Go 写接口远不如 PHP 爽
    youyang
        59
    youyang  
       6 小时 44 分钟前
    @maigebaoer 是啊。。php 最好的语言。
    changz
        60
    changz  
       5 小时 35 分钟前 via Android
    这框架用了两年了,给我坑得不要不要的,只能说算是 toy 级别的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   890 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:17 · PVG 06:17 · LAX 15:17 · JFK 18:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.