[开发]FlintHub vs Flarum / Discourse / Xiuno — 竞品对比

👑Lv.11 元老 🌞 骨干会员
2026-10-24 00:31:42

本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:WWW/待办事宜/FlintHub_竞品对比.html。

FlintHub vs Flarum / Discourse / Xiuno — 竞品对比

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>FlintHub vs Flarum / Discourse / Xiuno — 竞品对比</title>

<style>

:root{

--brand:#3b82f6; --brand-2:#0ea5e9;

--ink-1:#0f172a; --ink-2:#334155; --ink-3:#64748b; --ink-4:#94a3b8;

--bg:#f8fafc; --card:#fff; --line:#e2e8f0;

--win:#16a34a; --lose:#dc2626; --mid:#d97706;

}

*{margin:0;padding:0;box-sizing:border-box}

body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;

background:var(--bg);color:var(--ink-2);line-height:1.75;font-size:15px;-webkit-font-smoothing:antialiased}

.wrap{max-width:1060px;margin:0 auto;padding:0 24px 80px}

.hero{background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 48%,#0ea5e9 100%);color:#fff;

padding:52px 48px 44px;border-radius:0 0 32px 32px;margin-bottom:34px;position:relative;overflow:hidden}

.hero::after{content:"";position:absolute;width:400px;height:400px;border-radius:50%;

background:rgba(255,255,255,.07);top:-170px;right:-110px}

.hero .tag{display:inline-flex;align-items:center;gap:7px;padding:5px 14px;border-radius:999px;

background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);font-size:12px;font-weight:600;

letter-spacing:.5px;margin-bottom:18px}

.hero h1{font-size:29px;font-weight:700;letter-spacing:-.5px;margin-bottom:10px;line-height:1.3}

.hero .sub{font-size:14.5px;opacity:.88}

.hero .vs{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}

.hero .vs span{padding:5px 13px;border-radius:9px;background:rgba(255,255,255,.13);

border:1px solid rgba(255,255,255,.22);font-size:13px}

.hero .vs span.me{background:#fff;color:#1e3a8a;font-weight:700;border-color:#fff}

.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px 30px;

margin-bottom:22px;box-shadow:0 1px 3px rgba(15,23,42,.04)}

h2{font-size:20px;font-weight:700;color:var(--ink-1);margin-bottom:16px;display:flex;align-items:center;

gap:10px;letter-spacing:-.2px}

h2 .num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;

font-size:13px;font-weight:700;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;flex-shrink:0}

h3{font-size:15.5px;font-weight:650;color:var(--ink-1);margin:22px 0 10px}

h3:first-child{margin-top:0}

p{margin-bottom:12px}

ul,ol{margin:0 0 12px 22px}

li{margin-bottom:6px}

code{font-family:"SF Mono",Consolas,Monaco,monospace;font-size:12.5px;background:#f1f5f9;color:#0f172a;

padding:2px 6px;border-radius:5px;border:1px solid #e2e8f0;word-break:break-all}

/ 数据来源徽章 /

.src{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;

font-size:10.5px;font-weight:700;letter-spacing:.3px;vertical-align:middle;white-space:nowrap}

.s-test{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}

.s-doc{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}

.s-est{background:#fffbeb;color:#b45309;border:1px solid #fde68a}

/ 表格 /

.tblwrap{overflow-x:auto;margin:14px 0;-webkit-overflow-scrolling:touch}

table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:720px}

th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}

th{background:#f8fafc;color:var(--ink-1);font-weight:650;font-size:12.5px;letter-spacing:.2px;position:sticky;top:0}

th.mine{background:#eff6ff;color:#1d4ed8}

td.mine{background:#f8fbff}

tr:last-child td{border-bottom:none}

td b{color:var(--ink-1)}

.y{color:var(--win);font-weight:650}

.n{color:var(--lose);font-weight:650}

.m{color:var(--mid);font-weight:650}

/ 大数字对比 /

.duo{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin:18px 0}

.duo .side{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:18px 20px;text-align:center}

.duo .side.hi{background:#eff6ff;border-color:#bfdbfe}

.duo .side .v{font-size:26px;font-weight:700;letter-spacing:-.6px;line-height:1.2;color:var(--ink-1)}

.duo .side.hi .v{color:#1d4ed8}

.duo .side .k{font-size:12.5px;color:var(--ink-3);margin-top:5px}

.duo .mid{font-size:13px;font-weight:700;color:var(--ink-3);white-space:nowrap}

/ 结论块 /

.key{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-left:4px solid var(--brand);

border-radius:14px;padding:20px 24px;margin:18px 0}

.key .lbl{font-size:11.5px;font-weight:700;letter-spacing:1.2px;color:#1d4ed8;margin-bottom:8px}

.key .tx{font-size:15px;color:var(--ink-1);line-height:1.7}

.key .tx b{color:#1d4ed8}

.callout{background:#fffbeb;border:1px solid #fde68a;border-left:4px solid var(--mid);

border-radius:12px;padding:16px 20px;margin:16px 0;font-size:14px}

.callout.ok{background:#f0fdf4;border-color:#bbf7d0;border-left-color:var(--win)}

.callout b{color:var(--ink-1)}

/ 场景卡 /

.scn{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:14px}

.scn .it{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:#fff}

.scn .it .t{font-weight:700;color:var(--ink-1);font-size:14px;margin-bottom:8px}

.scn .it .r{font-size:13.5px;color:var(--ink-2)}

.scn .it .r em{font-style:normal;font-weight:700;color:#1d4ed8}

.foot{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);text-align:center;

font-size:12.5px;color:var(--ink-4)}

@media(max-width:680px){

.hero{padding:38px 24px 32px;border-radius:0 0 24px 24px}.hero h1{font-size:22px}

.wrap{padding:0 14px 60px}.card{padding:22px 18px}

.duo{grid-template-columns:1fr;gap:10px}.duo .mid{text-align:center}

}

</style>

</head>

<body>

<div class="hero">

<div class="tag">竞品对比 · COMPETITIVE ANALYSIS</div>

<h1>FlintHub vs Flarum / Discourse / Xiuno</h1>

<div class="sub">部署成本 · 运维成本 · 资源占用 对照</div>

<div class="vs">

<span class="me">FlintHub 1.0</span>

<span>Flarum 2.x</span>

<span>Discourse</span>

<span>Xiuno BBS 4.0.4</span>

</div>

</div>

<div class="wrap">

<!-- 数据来源声明 -->

<div class="card">

<h2><span class="num">!</span>数据来源声明</h2>

<p>本页对每个数字都标注了来源,请按标注理解其可信度:</p>

<ul>

<li><span class="src s-test">实测</span> —— 我在本机直接测量得到,可复现。FlintHub 的体积、文件数;Flarum 官方发行包的 HTTP <code>Content-Length</code>。</li>

<li><span class="src s-doc">官方</span> —— 引自竞品官方文档原文(Flarum <code>docs.flarum.org/install</code>、Discourse 仓库 <code>docs/INSTALL.md</code>)。</li>

<li><span class="src s-est">架构推断</span> —— 基于运行架构的合理分析,非实测。凡涉及"常驻进程内存"一类数据均属此类。</li>

</ul>

<div class="callout">

<b>必须说明的局限:</b>我<b>没有</b>在同一台机器上真实部署 Flarum / Discourse 跑基准测试——那需要 Docker、PostgreSQL、Redis、Composer 环境。

因此本页<b>不提供</b>"三方同环境 benchmark"数字。凡是无法实测的,我标注为官方要求或架构推断,不编造实测值。

</div>

</div>

<!-- 速览矩阵 -->

<div class="card">

<h2><span class="num">01</span>速览矩阵</h2>

<div class="tblwrap">

<table>

<thead>

<tr>

<th style="width:132px">对比项</th>

<th class="mine" style="width:170px">FlintHub 1.0</th>

<th style="width:170px">Flarum 2.x</th>

<th style="width:180px">Discourse</th>

<th style="width:160px">Xiuno 4.0.4</th>

</tr>

</thead>

<tbody>

<tr>

<td><b>发行包体积</b><br><span class="src s-test">实测</span></td>

<td class="mine"><b>5.8 MB</b></td>

<td>48.7 MB</td>

<td>Docker 镜像体系<br>(官方要求 10 GB 磁盘)</td>

<td>约 5 MB</td>

</tr>

<tr>

<td><b>运行语言</b></td>

<td class="mine">PHP ≥ 8.0</td>

<td>PHP <b>≥ 8.3</b></td>

<td>Ruby 3.2+ / Docker</td>

<td>PHP 5.6 – 7.x</td>

</tr>

<tr>

<td><b>数据库</b></td>

<td class="mine"><span class="y">无需</span><br>SQLite 随 PHP 提供</td>

<td>MySQL / MariaDB<br>SQLite / PostgreSQL</td>

<td>PostgreSQL</td>

<td>MySQL</td>

</tr>

<tr>

<td><b>缓存服务</b></td>

<td class="mine"><span class="y">无需</span></td>

<td><span class="y">无需</span></td>

<td>Redis 7</td>

<td><span class="y">无需</span></td>

</tr>

<tr>

<td><b>容器</b></td>

<td class="mine"><span class="y">不需要</span></td>

<td><span class="y">不需要</span></td>

<td><span class="n">必须 Docker</span></td>

<td><span class="y">不需要</span></td>

</tr>

<tr>

<td><b>命令行 / SSH</b></td>

<td class="mine"><span class="y">不需要</span></td>

<td><span class="m">官方要求 SSH</span></td>

<td><span class="n">必须 SSH</span></td>

<td><span class="y">不需要</span></td>

</tr>

<tr>

<td><b>虚拟主机可用</b></td>

<td class="mine"><span class="y">可以</span><br>三套配置内置</td>

<td><span class="m">部分可以</span><br>需处理权限</td>

<td><span class="n">官方明确不支持</span></td>

<td><span class="y">可以</span></td>

</tr>

<tr>

<td><b>安装方式</b></td>

<td class="mine">浏览器三步向导</td>

<td>解压 archive<br>或 Composer</td>

<td>Docker 命令行</td>

<td>上传 + 安装页</td>

</tr>

<tr>

<td><b>维护状态</b></td>

<td class="mine"><span class="y">活跃</span><br>V1.0.0(2026-09)</td>

<td><span class="y">活跃</span><br>2.0 RC</td>

<td><span class="y">活跃</span></td>

<td><span class="n">已停更</span><br>作者退网</td>

</tr>

<tr>

<td><b>插件生态</b></td>

<td class="mine">17 个内置</td>

<td>社区扩展丰富</td>

<td><b>生态最大</b></td>

<td>碎片化分叉</td>

</tr>

</tbody>

</table>

</div>

<div class="key">

<div class="lbl">从矩阵里跳出来的结论</div>

<div class="tx">

看最后两行与「虚拟主机可用」这一行:<b>能在纯虚拟主机上跑、不需要命令行、且仍在活跃维护的,只有 FlintHub 一个。</b>

Xiuno 满足前两条但已停更;Flarum 活跃但要 SSH 且 PHP 版本要求更高;Discourse 三条全不满足。

</div>

</div>

</div>

<!-- 部署成本 -->

<div class="card">

<h2><span class="num">02</span>部署成本对比</h2>

<h3>发行包体积 <span class="src s-test">实测</span></h3>

<div class="duo">

<div class="side hi">

<div class="v">5.8 MB</div>

<div class="k">FlintHub 1.0</div>

</div>

<div class="mid">vs</div>

<div class="side">

<div class="v">48.7 MB</div>

<div class="k">Flarum 2.0 官方发行包</div>

</div>

</div>

<p>

两者都是"上传解压"形态,可直接对比:<b>相差 8.4 倍</b>。Flarum 的体积主要来自随包附带的 Composer 依赖(<code>vendor/</code>),

FlintHub 因为零依赖,包内只有自己的代码与前端资源。对按流量计费或带宽受限的上传场景,这个差距是实打实的。

</p>

<p>

更极端的对比是 Discourse:它不走"上传文件"这条路,而是拉取 Docker 镜像,官方最低要求 <b>10 GB 磁盘</b>

<span class="src s-doc">官方</span>——与 5.8 MB 不在同一个量级,属于不同的部署范式。

</p>

<h3>环境依赖清单</h3>

<div class="tblwrap">

<table>

<thead><tr><th style="width:120px">项目</th><th class="mine">FlintHub</th><th>Flarum 2.x <span class="src s-doc">官方</span></th><th>Discourse <span class="src s-doc">官方</span></th><th>Xiuno</th></tr></thead>

<tbody>

<tr>

<td><b>PHP 扩展</b></td>

<td class="mine">pdo、pdo_sqlite、mbstring、fileinfo、curl、gd 或 imagick、openssl<br><span style="color:var(--ink-3);font-size:12.5px">7 类</span></td>

<td>curl、dom、fileinfo、gd、json、mbstring、openssl、pdo_mysql、tokenizer、zip、session<br><span style="color:var(--ink-3);font-size:12.5px">11 类</span></td>

<td>—(由 Docker 镜像封装)</td>

<td>PDO MySQL 等</td>

</tr>

<tr>

<td><b>外部服务</b></td>

<td class="mine"><span class="y">0 个</span></td>

<td><span class="y">0 个</span>(数据库必选 1 个)</td>

<td><span class="n">2 个</span>:PostgreSQL + Redis</td>

<td><span class="m">1 个</span>:MySQL</td>

</tr>

<tr>

<td><b>依赖管理器</b></td>

<td class="mine"><span class="y">无</span></td>

<td>Composer(管理扩展时需要)</td>

<td>Docker</td>

<td><span class="y">无</span></td>

</tr>

<tr>

<td><b>权限配置</b></td>

<td class="mine">设置目录可写<br>(向导会检测)</td>

<td>chmod / chown / 可能需 SELinux 策略</td>

<td>Docker 自动处理</td>

<td>设置目录可写</td>

</tr>

</tbody>

</table>

</div>

<h3>安装步骤数(按官方文档计)</h3>

<div class="tblwrap">

<table>

<thead><tr><th style="width:120px">产品</th><th>操作路径</th><th style="width:110px">需命令行</th></tr></thead>

<tbody>

<tr>

<td class="mine"><b>FlintHub</b></td>

<td class="mine">上传 → 配伪静态 → <b>浏览器打开 install.php 走三步</b></td>

<td class="mine"><span class="y">否</span></td>

</tr>

<tr>

<td><b>Flarum</b></td>

<td>方案 A:下载 archive → 解压 → 配 webroot → 配 URL Rewrite → 浏览器向导 → <span class="m">权限调整(可能要 chmod/chown/SELinux)</span><br>方案 B:Composer 创建项目 → 命令行安装扩展</td>

<td><span class="m">官方要求 SSH</span></td>

</tr>

<tr>

<td><b>Discourse</b></td>

<td>SSH 登录 → 装 Docker → 拉配置仓库 → 改 app.yml → <code>./launcher bootstrap app</code>(编译数分钟至十几分钟)→ <code>./launcher start app</code></td>

<td><span class="n">必须</span></td>

</tr>

<tr>

<td><b>Xiuno</b></td>

<td>上传 → 安装页(与 FlintHub 类似)</td>

<td><span class="y">否</span></td>

</tr>

</tbody>

</table>

</div>

<div class="callout">

<b>关键差异在「谁被排除在外」:</b>Discourse 官方文档原文写着

「<i>We regret that we cannot support any other methods of installation including cpanel, plesk, webmin, etc.</i>」

<span class="src s-doc">官方</span> —— 这一句直接把所有使用面板的虚拟主机用户挡在门外。

Flarum 虽提供免 Composer 的 archive 包,但官方仍要求 SSH 访问,且 PHP 8.3+ 的门槛比 FlintHub 的 8.0+ 高一档。

</div>

</div>

<!-- 运维成本 -->

<div class="card">

<h2><span class="num">03</span>运维成本对比</h2>

<div class="tblwrap">

<table>

<thead>

<tr>

<th style="width:110px">运维动作</th>

<th class="mine">FlintHub</th>

<th>Flarum 2.x</th>

<th>Discourse</th>

<th>Xiuno</th>

</tr>

</thead>

<tbody>

<tr>

<td><b>备份</b></td>

<td class="mine"><b>复制 <code>data/</code> 文件夹</b><br>(数据库即文件)</td>

<td>导出 SQL + 备份 <code>assets/</code><br>(SQLite 模式下同样是拷文件)</td>

<td>官方 CLI:<code>discourse backup</code><br>需容器内执行</td>

<td>mysqldump + 附件目录</td>

</tr>

<tr>

<td><b>恢复</b></td>

<td class="mine">把文件夹放回去</td>

<td>导入 SQL + 还原附件</td>

<td>容器内 restore</td>

<td>导入 SQL</td>

</tr>

<tr>

<td><b>升级</b></td>

<td class="mine">完整包覆盖<br>(保留 data/、protected/)</td>

<td>覆盖 + 可能需 <code>composer update</code></td>

<td>Web 后台点按钮<br>(Docker 重建)</td>

<td>覆盖文件</td>

</tr>

<tr>

<td><b>扩容</b></td>

<td class="mine"><b>改桶数即可</b><br>历史数据永不迁移</td>

<td>垂直升级服务器<br>或迁移到 MySQL/PG</td>

<td>垂直升级 + 调容器资源</td>

<td>换 MySQL 配置</td>

</tr>

<tr>

<td><b>数据库调优</b></td>

<td class="mine"><span class="y">不需要</span></td>

<td>需要(MySQL 参数)</td>

<td>需要(PG 参数)</td>

<td>需要</td>

</tr>

<tr>

<td><b>日常维护</b></td>

<td class="mine">cron 触发队列<br>(<code>cron_trigger.php</code>)</td>

<td>队列 worker</td>

<td>Sidekiq 常驻</td>

<td>较少</td>

</tr>

<tr>

<td><b>维护工具</b></td>

<td class="mine"><b>21 个 CLI 脚本</b><br>(迁移/重建/修复/归档/诊断)</td>

<td>官方 CLI 命令</td>

<td>官方 CLI 命令</td>

<td>较少</td>

</tr>

</tbody>

</table>

</div>

<div class="key">

<div class="lbl">运维成本的本质差异</div>

<div class="tx">

Discourse 的运维复杂度来自它<b>有 4 个常驻进程</b>(Rails / Sidekiq / PostgreSQL / Redis),任何一个挂了站点就异常,所以它必须有 <code>discourse</code> CLI 来统一管理。

FlintHub 是<b>无状态 PHP + 一个文件</b>,没有常驻进程,所以"运维"退化成"文件操作"——

<b>备份是复制文件夹,恢复是放回去。</b>对不懂数据库的中小站长,这个差别是决定性的。

</div>

</div>

<div class="callout ok">

<b>值得单独一提:</b>FlintHub 的 <b>21 个 CLI 维护脚本</b>(含 <code>repair_extern_idx</code>、<code>shrink_business</code>、<code>rebuild_search</code> 等)

在数量上超过 Flarum 与 Discourse 的官方 CLI 工具集。这既是优点(运维手段丰富),

也侧面说明它经历过不少"需要修数据"的真实场景。

</div>

</div>

<!-- 资源占用 -->

<div class="card">

<h2><span class="num">04</span>资源占用对比</h2>

<p>

这一节必须区分两类数据。以下是<b>架构决定的常驻内存</b>分析

<span class="src s-est">架构推断</span>——因为我没有同环境实测三方,所以给的是架构层面的必然差异,而非 benchmark 数字。

</p>

<div class="tblwrap">

<table>

<thead>

<tr>

<th style="width:110px">资源项</th>

<th class="mine">FlintHub</th>

<th>Flarum 2.x</th>

<th>Discourse</th>

</tr>

</thead>

<tbody>

<tr>

<td><b>常驻进程</b></td>

<td class="mine"><span class="y">0 个</span><br>(PHP-FPM 按需拉起)</td>

<td><span class="m">0 个</span><br>但需数据库常驻</td>

<td><span class="n">4 个</span><br>Rails / Sidekiq / PG / Redis</td>

</tr>

<tr>

<td><b>内存构成</b></td>

<td class="mine">仅 PHP-FPM 进程池</td>

<td>PHP-FPM + 数据库进程</td>

<td>官方:<b>1 GB 最低(需配 swap)</b><span class="src s-doc">官方</span><br>社区共识:2 GB 可跑小型,生产建议 4 GB+</td>

</tr>

<tr>

<td><b>磁盘要求</b></td>

<td class="mine">程序 <b>5.8 MB</b> + 数据</td>

<td>程序 48.7 MB + 数据</td>

<td>官方:<b>10 GB 最低</b><span class="src s-doc">官方</span></td>

</tr>

<tr>

<td><b>CPU</b></td>

<td class="mine">单核可跑</td>

<td>单核可跑</td>

<td>官方:单核,<b>推荐双核</b><span class="src s-doc">官方</span></td>

</tr>

<tr>

<td><b>数据库内存</b></td>

<td class="mine"><span class="y">无</span></td>

<td>MySQL 常驻通常数百 MB 量级</td>

<td>PostgreSQL + Redis 常驻</td>

</tr>

</tbody>

</table>

</div>

<div class="callout">

<b>必须诚实的一点:</b>「无数据库服务」不等于「一定更快」。

MySQL / PostgreSQL 有内存缓冲与连接池,在<b>高并发随机读</b>场景下可能比 SQLite 更稳。

FlintHub 的优势在于<b>资源下限低</b>(能在 256MB / 512MB 的小机器上跑起来),而不在于"性能上限更高"。

如果你的站已经有稳定的 MySQL 服务且流量很大,Flarum + MySQL 未必更差。

</div>

<h3>FlintHub 的实测数据规模</h3>

<p>

项目 README 声明的实测基准是 <b>19 万+ 主题 / 16 万+ 回复 / 5 万+ 用户 / 235 万+ 搜索索引行</b>

<span class="src s-doc">项目自述</span>。这是<b>存量数据承载量</b>,不是并发写入能力——两者要分开看。

</p>

<div class="callout ok" style="background:#f8fbff;border-color:#bfdbfe;border-left-color:#3b82f6">

<b>关于写入并发,我按源码核实后的精确结论(2026-09-14 修订):</b>

<p style="margin:10px 0 8px">

我此前写的「SQLite 是单写者」过于笼统。核对 SplitDB 源码后,准确情况是<b>分场景</b>的:

</p>

<ul style="margin-bottom:8px">

<li>

<b>跨主题并发写 —— 可以并行。</b>分片键是<b>主题 ID</b>(<code>ShardRouter::bucketForWrite()</code>),

每个桶是独立 SQLite 文件、独立 WAL,且 <code>synchronous = NORMAL</code>(提交不需每次 fsync,锁窗口极短)。

多个<b>不同主题</b>同时被回复时,确实能分散到不同桶并行写入,并行上限随桶数(32/64/128)提升。

</li>

<li>

<b>单帖爆火 —— 桶数不起作用,会串行。</b>

<code>app/Models/Post.php</code> 的注释明确写着这是<b>设计决策</b>:

「回复存储于父帖所在桶(<b>而非按回复 ID 重新哈希</b>)」。

因此同一帖的数百条回复全部落进<b>同一个桶</b>,且写入路径上还要穿过两个<b>全局单点文件</b>。

</li>

</ul>

<p style="margin-bottom:0">

结论:<b>「能扛住多少并发」取决于并发是「多帖分散」还是「单帖集中」</b>。

前者受益于分桶,后者受限于全局单点。建议在文档中分开描述这两个场景,不要给单一数字。

</p>

</div>

<div class="callout" style="background:#f8fafc;border-color:#e2e8f0;border-left-color:#64748b">

<b>补充:后台已提供的性能开关(核实于 2026-09-14)</b>

<p style="margin:10px 0 8px">

需要说明的是,SplitDB 并非没有考虑这些成本,后台已经提供了成体系的调节手段:

</p>

<ul style="margin-bottom:8px">

<li><b>任务队列三档</b>(<code>queue_mode</code>):<code>sync</code> 同步直写 / <code>cron</code> 定时触发 / <code>cli</code> 常驻消费。

后台文案明确标注 <code>sync</code> 为<b>「推荐」</b>,适用场景写明「仅需 PHP 环境,无需额外配置,<b>适合个人测试或廉价虚拟主机</b>」——

即以「零配置」换「极高并发下略增响应时间」,是有意识的取舍而非疏漏。</li>

<li><b>冷数据归档</b>(<code>archive_after_days</code>):18 个月以上的季度桶移入 <code>bucket/archive/</code>,缩小活跃库体积。</li>

<li><b>桶容量与自动扩容</b>(<code>bucket_safe_capacity</code> / <code>auto_expand_enabled</code>)。</li>

<li><b>多层缓存</b>:版块统计永久缓存(写操作主动失效)、桶容量检查 60 秒进程内缓存、运行时计数器批量预载。</li>

</ul>

<p style="margin-bottom:0">

这些设计让系统在「默认零配置」下也能稳定运行。上文提到的并发边界,

是在<b>把 <code>sync</code> 模式推到极限</b>时才会显现,而不是日常状态。

</p>

</div>

</div>

<!-- 适用场景 -->

<div class="card">

<h2><span class="num">05</span>各自最适合什么场景</h2>

<p>公允地说,四者并非简单的替代关系,各有其最优场景:</p>

<div class="scn">

<div class="it">

<div class="t">FlintHub 1.0</div>

<div class="r">

<em>虚拟主机 / 小 VPS / 内网离线部署</em><br>

预算有限、不会运维数据库、数据量中小、最怕麻烦的场景。

也是唯一适合「拷贝即部署」离线环境的选择。

</div>

</div>

<div class="it">

<div class="t">Flarum 2.x</div>

<div class="r">

<em>有 SSH 的 VPS + 追求现代体验</em><br>

界面设计最现代,社区扩展丰富。适合懂一点技术、

愿意用命令行换取更好体验的站长。

</div>

</div>

<div class="it">

<div class="t">Discourse</div>

<div class="r">

<em>有专职运维的中大型社区</em><br>

功能与生态最强,但资源要求与运维复杂度也最高。

适合有 4GB+ 内存服务器、能接受 Docker 的团队。

</div>

</div>

<div class="it">

<div class="t">Xiuno 4.0.4</div>

<div class="r">

<em>不推荐新部署</em><br>

作者已退网、官方停更,遗留安全漏洞与 PHP 8 兼容问题,

生态已碎片化为多个分叉。仅存量站点维持。

</div>

</div>

</div>

<div class="key">

<div class="lbl">FlintHub 真正的独占区间</div>

<div class="tx">

<b>「纯虚拟主机 + 无命令行 + 仍在活跃维护」</b> —— 这个交集里,目前只有 FlintHub。

Xiuno 曾占据这里但已退场;Flarum 用 SSH 要求把自己挡在门外;Discourse 官方直接声明不支持面板环境。

这是一个<b>真实的空位</b>,而不是宣传话术。

</div>

</div>

</div>

<!-- 局限 -->

<div class="card">

<h2><span class="num">06</span>FlintHub 的局限(同样要说清)</h2>

<ul>

<li><b>生态规模差距真实存在。</b>Flarum 与 Discourse 的社区扩展数量是数十倍量级,FlintHub 目前是 17 个内置插件。这是需要时间积累的,不是靠技术能速成的。</li>

<li><b>SQLite 的写入并发是硬边界。</b>能撑住中小社区,但不适合高并发写入场景。不要拿"19 万主题"去对标"能扛多少同时在线"。</li>

<li><b>PHP 8.3+ 的对比中,Flarum 领先的是生态而非门槛</b>——反过来说,FlintHub 的 PHP 8.0+ 门槛更低,这是优势,但也意味着对更老环境的兼容包袱。</li>

<li><b>认知阻力大于技术阻力。</b>站长圈普遍认为「SQLite 撑不住论坛」。这需要靠文档与真实案例慢慢扭转,而不是靠技术参数。</li>

<li><b>本页缺少三方同环境 benchmark。</b>如果你需要,我可以帮你设计一套可复现的对比测试方案(相同 VPS 规格、相同数据量、相同压测脚本),由你在真实环境跑出数字。</li>

</ul>

<div class="callout ok">

<b>一句话总结:</b>FlintHub 不是"更好的 Flarum",也不是"轻量版 Discourse"。

它占的是一个<b>别人主动放弃的位置</b>——那些官方明确声明"不支持"的环境。

在这个区间里,它目前是唯一选项。这就是它最应该被讲清楚的价值。

</div>

</div>

<div class="foot">

FlintHub 1.0 竞品对比 · 2026-09-14<br>

数据来源:FlintHub 本机实测 · Flarum 官方文档(docs.flarum.org)· Discourse 官方仓库(docs/INSTALL.md)<br>

凡标注「架构推断」的条目为分析结论,非实测数据;本页不含三方同环境 benchmark。

</div>

</div>

</body>

</html>

轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| 浏览 5 次 | 回复 0 次

全部回复 (0)

暂无回复

请 登录