ThinkPHP 8 可插拔架构实战:一套容器绑定搞定多渠道支付切换
接手一个老项目的时候,我在支付模块的入口文件里看到了一段 400 多行的 switch。大概长这样: switch ($…
FrankenPHP worker 模式真香之前,先过一遍这三个坑
先把结论放前面。把项目从 php-fpm 切到 FrankenPHP 的 worker 模式之后,同一个接口的 QPS …
虚拟线程迁移翻车记:一个聚合接口从 800ms 到 120ms,中间修了三个坑
先交代一下这个接口是什么。电商中台的「商品详情聚合」,前端一个请求过来,后端要同时去调库存、价格、促销、评价、推荐、物流…
别再拿 Redis List 当队列了:ThinkPHP 8 下单超时取消的 Stream 完整落地
订单超时取消这个需求,几乎是每个电商、外卖、票务项目都会碰到的。用户下单之后 15 分钟没支付,就要把订单关掉、库存还回…
ThinkPHP 8 支付回调幂等实战:从重复订单到最终一致的完整方案
去年年底,有个客户半夜给我们值班群发消息,说他们一个用户投诉,下了 1 单,收到了 2 件货。仓库同事核对后发现确实是同…
Java 外部函数与内存 API 实战:不写 C 代码直接调用系统库
过去十几年,Java 想碰一碰操作系统底层,绕不开两个选择:要么写 JNI,要么认命用 Runtime.exec 去解析…
