10|容量与底层框架
总后台高并发架构
面向数万客户和十万站点的管理控制面、网站服务面和数据分析面设计。
三运行面
总后台、客户网站和流量分析必须隔离故障
总后台高并发不能依靠一台PHP服务器或所有请求直查同一个MySQL。
管理控制面
总后台、客户后台、编辑器API、客户/站点/内容/域名/发布配置。
强一致、权限、审计网站服务面
客户公网站点、CDN、静态产物、动态表单和搜索API。
高访问、单站隔离、稳定版本数据分析面
访问事件、第三方统计、SEO、清洗、聚合和报表。
高吞吐、可延迟、可重算规划容量
以下是架构和压测基线,M0必须用真实业务数据修订
50,000客户租户规划上限总后台列表不得实时全表聚合
100,000客户站点规划上限分区、索引、搜索和资源调度
3,000后台同时在线会话内部员工+客户用户
1,000 RPS管理API持续峰值活动突发按3,000 RPS验证
1,000万 PV/日公网站点扩展目标CDN命中≥95%
1,000 events/s流量持续采集3,000 events/s突发
100并发站点构建其余进入有优先级队列
99.9%管理后台月可用目标询盘和网站访问单独设SLO
部署主框架
PHP模块化单体 + 独立高负载服务
CDN/WAF→负载均衡/API网关→PHP无状态应用 × N→
MySQL HARedis Cluster消息队列对象存储
| 部署单元 | 职责 | 扩缩容与隔离 |
|---|---|---|
| PHP管理应用 | OA适配、客户、套餐、站点配置、CMS、域名、发布编排、询盘查询 | 无状态多实例;按CPU、P95、FPM队列扩容;数据库连接有总预算 |
| 编辑器BFF(可合并起步) | 聚合页面/组件/素材,减少前端碎片请求 | 热点按site/tenant缓存;不可拥有业务事实 |
| 异步Worker | 初始化、导入、导出、通知、域名、第三方同步、补偿 | 按任务类型和优先级独立Worker池 |
| 构建发布服务 | 站点snapshot构建、上传、健康检查、切换和回滚 | 与PHP请求进程隔离;每租户并发配额;弹性构建节点 |
| 站点动态API | 询盘、站内搜索、必要动态组件 | 与总后台独立域名、连接池和扩缩容;故障不影响静态页面 |
| 流量采集服务 | 事件校验、去敏和写队列 | 独立无状态高吞吐服务;不能逐条写管理MySQL |
| 分析聚合服务 | Session、小时/日聚合、数据质量和报表 | 独立分析库;允许延迟;可重算 |
| 静态站点服务 | 对象存储+CDN返回HTML/CSS/JS/图片 | 源站不可直暴露;热点站点可独立域名/配额 |
总后台查询优化
高并发的关键不是盲目拆微服务
| 场景 | 正确做法 | 禁止做法 |
|---|---|---|
| 运营总览 | 事件驱动维护小时/日聚合表和缓存;显示更新时间 | 每次打开实时COUNT所有客户、站点、询盘和事件明细 |
| 客户/站点列表 | 组合索引+cursor分页;复杂全文/多条件进入搜索索引 | 大offset、无上限page_size、跨表模糊LIKE |
| 客户详情 | 客户/站点/配额/发布卡片分接口并行加载;单卡失败隔离 | 一个PHP接口拼接几十张表和第三方实时请求 |
| 权限 | OA身份换取平台会话;权限版本和服务范围缓存;变更主动失效 | 每个API同步调用OA权限接口 |
| 媒体上传 | 对象存储直传、异步处理和CDN | 大文件经过PHP应用内存/本地磁盘 |
| 发布/导出/同步 | 创建任务、入队、进度和结果通知 | HTTP请求等待构建/导出/第三方同步完成 |
| 跨客户统计 | 分析库或预聚合;必须按管理范围过滤 | 在交易库扫描全量tenant数据 |
数据库与缓存
tenant隔离和连接预算是PHP高并发红线
| 组件 | 项目职责 | 关键约束 |
|---|---|---|
| MySQL高可用 | 客户、权限映射、套餐、站点、内容、域名、发布、询盘事实 | 所有业务表tenant_id;关键唯一键包含tenant;读写分离只用于可接受延迟读 |
| Redis | 会话、OA身份/权限版本、热点站点配置、看板缓存、分布式锁和限流 | Key包含tenant/site;主动失效;缓存不是唯一事实源;防穿透/击穿 |
| 消息队列 | 站点初始化、发布、通知、采集、同步和补偿 | Outbox、幂等消费、重试、死信、积压监控和按优先级隔离 |
| 对象存储 | 媒体原图、处理图、站点snapshot、构建产物、导出和备份 | 私有/公开分桶或前缀策略;不依赖应用本地盘 |
| 分析库 | PV、Session、聚合和SEO历史 | 按日期/tenant/site分区;不替代交易库 |
| 搜索引擎 | 总后台客户/站点搜索、站内搜索、知识/内容搜索 | 索引可重建;权限过滤不能只依靠前端 |
| 可观测平台 | 日志、指标、追踪、任务和告警 | 技术日志、业务审计和流量事件分开保留 |
性能与降级验收
以分位数和业务正确性验收
| 场景 | 负载条件 | 验收 |
|---|---|---|
| 后台页面壳 | 主要办公网络 | LCP P75≤2s;核心卡片P95≤3s;单卡失败隔离 |
| 普通读API | 生产等量数据和热缓存 | P95≤300ms,P99≤800ms |
| 普通写API | 不包含异步构建/第三方 | P95≤500ms;重复请求业务结果唯一 |
| 管理API峰值 | 1000 RPS持续30分钟 | 错误率≤0.1%,无串租户、无连接耗尽 |
| 活动突发 | 3000 RPS 5分钟 | 核心写入可用,低优先查询限流/缓存降级 |
| 发布队列 | 100并发构建、1000任务排队 | 优先级和租户公平;失败不影响稳定站点 |
| 网站访问 | 1000万PV/日规划、热点10倍 | CDN命中≥95%;源站异常返回稳定静态版本 |
| 流量采集 | 1000 events/s持续,3000突发10分钟 | 成功≥99.99%;30分钟内消化积压;不重复计数 |
降级顺序
优先保证:OA已登录会话校验、客户登录、询盘、站点访问、发布回滚、客户/站点关键写入;随后是编辑保存、普通查询;再后是报表、第三方同步、导出和AI。