0
次前端编译
应用与插件,装上即生效
4
层租户体系
官方云 → 部署 → 租户 → 站点
∞
站点数量
框架授权不限站点与租户
7
天离线宽限
断网不影响生产站点运行
行业现状
每接一个客户,就重造一次轮子?
部署、二开、升级……传统方案里,站点越多,负担越重,交付越来越慢。
一套部署
四层同构,一次部署
官方云、部署、租户、站点各司其职;数据按 site_id 硬隔离,权责一目了然。
自由组合
应用与插件,装上即生效
免编译扩展体系,像搭积木一样拼出每个站点的业务形态,无需一行构建命令。
无限站点
一套代码,无限生意
站点与租户永不设限,多开一个站点的边际成本趋近于零。
为什么是 Tenraft
以代差立身,不做第 N 个轮子
对市面主流方案的共性硬伤逐一给出内核级答案——每一条都是架构决策,而非功能列表。
常驻内存后端
webman 2.x 进程常驻,框架只初始化一次,摆脱 php-fpm 每请求重建的开销;HTTP、队列、定时任务独立进程,一条命令拉起。
免编译扩展体系
后端热装 + 管理端运行时 ESM 加载。安装应用或插件,无 npm、无构建、无重启编译链——刷新页面即可见,WordPress 式体验。
一键在线升级
Ed25519 签名校验、升级预检、阶梯式增量迁移、升级前快照;失败自动回滚,健康检查通过才算完成。
资金级并发安全
余额扣减走事务 + 行锁 + 流水唯一索引 + CAS 状态机,重复回调与并发请求天然幂等。资产变动只有一个入口。
Hook 扩展点一等公民
内核在关键流程发布同步 filter 与异步 action 事件,插件订阅即可介入。二开不碰源码,升级永远平滑。
多租户 · 多站点
ORM 全局 SiteScope 自动注入 site_id,业务代码禁止手写隔离条件;跨站点操作显式声明并全量审计。
体系结构
四层同构,权责分明
一套部署向下承载无限租户与站点,向上对接官方云的授权、商店与云构建。每一层都有自己的后台与边界。
官方云
我方运营授权服务、官方商店、更新源、uni-app 云构建,由官方运营。
部署
平台后台买家服务器上的一套 Tenraft 实例。授权、应用安装、升级均以部署为单位。
租户
租户后台买家的客户。名额按应用划拨,员工子账号带站点级角色,站点不限量自建。
站点
站点后台独立经营单元,数据按 site_id 硬隔离;自由组合官方应用与插件。
租户与站点数量均无限制;未绑定应用的站点不占任何名额。
资金级安全
把并发安全,
写进内核事务里
竞品的余额扣减没有锁、没有幂等——并发一冲就是资损。Tenraft 把统一收银台做成内核:余额、微信、支付宝、iOS 虚拟支付走同一套交易模型,状态流转一律 CAS,业务回调在事务提交之后。
- 金额全链路 int 分存储,禁止浮点运算
- 资产变动唯一入口 AccountService,CI 静态扫描兜底
- 掉单补偿:1 / 5 / 15 / 30 分钟退避主动查单
Db::transaction(function () use ($trade) {$member = Member::lockForUpdate()->find($trade->member_id); // 行锁$this->assertBalance($member, $trade); // 不足则回滚$member->decrement('balance', $trade->amount);AccountLog::create($flow); // 唯一索引防双扣Trade::where('trade_no', $trade->trade_no)->where('status', 'unpaid') // CAS 状态机->update(['status' => 'paid']);});Event::dispatch(new PayPaid($trade)); // 提交后再广播
代差对照
与传统 ThinkPHP 系方案的差距
逐项对照市面主流小程序 SaaS 框架的通行做法。
后端运行时
php-fpm,每个请求重建框架
webman 常驻内存,进程级复用
扩展安装
改多处配置,npm install 重新编译
后端热装 + 运行时 ESM,免编译
二次开发
直改源码,升级即冲突
Hook 扩展点介入,平滑升级
余额支付
无锁、无幂等,并发即双扣
事务 + 行锁 + 唯一流水 + CAS
在线升级
覆盖式更新,失败靠人工恢复
预检 + 快照 + 自动回滚 + 健康检查
管理端
Vue + Element 全家桶锁死
React 18 + shadcn/ui + Admin SDK
| 维度 | 传统 TP 系框架 | Tenraft |
|---|---|---|
| 后端运行时 | php-fpm,每个请求重建框架 | webman 常驻内存,进程级复用 |
| 扩展安装 | 改多处配置,npm install 重新编译 | 后端热装 + 运行时 ESM,免编译 |
| 二次开发 | 直改源码,升级即冲突 | Hook 扩展点介入,平滑升级 |
| 余额支付 | 无锁、无幂等,并发即双扣 | 事务 + 行锁 + 唯一流水 + CAS |
| 在线升级 | 覆盖式更新,失败靠人工恢复 | 预检 + 快照 + 自动回滚 + 健康检查 |
| 管理端 | Vue + Element 全家桶锁死 | React 18 + shadcn/ui + Admin SDK |