全站动态微服务路由总线与自发现归类架构 (Dynamic Microservice Route Hub and Auto-Discovery Architecture)
1. 架构目标与设计背景 (Architectural Goals & Background)
在拥有数十个独立微服务、API 网关、二级子域名和实验性原型(如 6767.chat 平台当前承载的 70 个独立项目与 270 条 Nginx 路由规则)的服务器环境下,纯静态的文档或手工维护的导航页极易随代码迭代与新服务上线而迅速脱节。
为了实现全站服务与路由的实时可观测、自动探测与可运营管理,构建了一套挂载于 https://6767.chat/router/ 的动态路由总线(Dynamic Router & Service Hub)微服务架构。
flowchart TD
NginxConf["/etc/nginx/platform/sites/6767.chat.conf"]
RoutesJson["/home/ubuntu/workspace/platform/nginx/routes.json"]
RouterModule["router.js / router.cjs 探测模块"]
Manifests["workspace/platform/projects/*.json 清单"]
Overrides["data/overrides.json 面板持久化覆盖"]
Catalog["projects-catalog.js 内建知识库"]
Engine["route-engine.js 聚合分类引擎"]
ExpressServer["router-dashboard (Port 3240)"]
WebUI["动态前端 Dashboard (6767.chat/router/)"]
RoutesJson --> RouterModule
NginxConf --> RouterModule
RouterModule --> Engine
Manifests --> Engine
Catalog --> Engine
Overrides --> Engine
Engine --> ExpressServer
ExpressServer <--> WebUI2. 核心分类维度与判定逻辑 (Dual Classification Dimensions)
为兼顾业务功能检索与底层网络架构运维,系统提供了两组正交的分类维度:
2.1 种类分类 (Category / Domain Classification)
按业务领域与产品形态归类:
- AI 与大模型 (AI & LLM Services):New-API 渠道网关、Gemini Live、Google Search MCP、Codeman、AstrBot 等。
- 核心业务与应用 (Core Business & Applications):6767 主站、三国杀鉴赏 (SGS)、ReadOS、职途星、AI 建站日记、智能笔记等。
- 校园专区 (Campus Services):万里教务助手 (JWGL)、万里素拓助手 (SZTZ)、校园全景地图、校园 110 告警等。
- 运维管控与基础设施 (Ops & Infrastructure):统一认证鉴权 (Auth-API)、网页 Bash 终端、Artifacts 执行器、Claude Code 切换器、日志监控等。
- 在线实用工具 (Utilities & Geek Tools):150+ 极客工具箱、Monkeytype 打字、Qwerty 背单词、2FA TOTP 生成、二维码等。
- 平台文档系统 (Platform Docs):平台知识库与接口文档。
- 历史归档与下线 (Archived & Retired):6767-api-attic、老版 smart-notes 等已平滑迁移或下线的服务。
- 其他项目 (Other Projects / 未分类):严格置于页面最末尾。任何自发现且未在内建知识库中声明的新路由,自动沉淀至此,并标记高亮警示边框与一键归类入口。
2.2 性质分类 (Nature / Architectural Classification)
按网络拓扑与反向代理形态归类:
- 独立二级子域名 (Subdomains):具有独立 DNS 与虚拟主机配置的站点(如
*.6767.chat、reados.chat)。 - 主站路径反代 (Path Reverse Proxy):挂载于主站二级路径下的微服务(如
/jwgl/、/sztz/、/codeman/)。 - MCP 与智能体协议 (MCP & Agent Protocol):面向大模型与 Agent 通信的结构化协议端点(如
/agent/*/mcp)。 - API 网关接口 (API Gateway Endpoints):纯数据交互的 REST/JSON 接口(如
/api/*)。 - 静态站点与单页 (Static Sites & SPA):Nginx 直接托管静态目录或编译产物的无后端服务。
- 认证与管控 (Auth & Management):由
auth-api保护(authRequest: true)或内部运维控制台。 - 归档与重定向 (Archived & Redirects):301/302/308 重定向与已退役路由。
- 其他项目 (Other Projects / 未分类):严格置于页面最末尾。
3. 动态嗅探与面板持久化机制 (Dynamic Sniffing & Persistence)
自动链接 router.js 与 NGINX:
- 提取平台中央路由表
routes.json,并通过sudo nginx -t实时获取 Nginx 语法健康状态。 - 兼顾 ESM 与 CommonJS 双规范(
router.js为 ESM 模块以符合 platformtype: module,router.cjs提供require兼容),确保任何脚本均可即时导入。
- 提取平台中央路由表
就地编辑与数据覆盖 (In-Place Overrides):
- 前端卡片提供编辑抽屉(Drawer),支持修改显示名称、种类分类、性质分类、主链接、描述、标签、排序权重与可见性。
- 针对“未分类项目”,提供“立即归类”一键操作。
- 修改通过
POST /router/api/project/:id写入宿主机data/overrides.json,后端动态合并“扫描数据 + 基础知识库 + 用户覆盖”,实现重启无损与热更新。
并发健康探测 (Concurrent Latency & Health Probing):
- 内建
GET /router/api/ping-all,后端轻量异步测速目标端点 HTTP 连通性与毫秒级延迟,动态点亮绿色在线或离线徽标。
- 内建
4. 关键运维与部署规范 (Ops Guidelines)
- 服务进程:systemd 单元
/etc/systemd/system/router-dashboard.service(端口3240,开机自启)。 Nginx 反代配置:
location ^~ /router/ { proxy_pass http://127.0.0.1:3240/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location = /router { return 308 /router/; }- 配置生效流程:
在/home/ubuntu/workspace/platform/nginx/routes.json追加路由定义 $\rightarrow$ 运行./deploy.sh生成配置并通过sudo nginx -t$\rightarrow$ 重载 Nginx $\rightarrow$ 执行四层验证。
本文归档于个人知识库 · 领域:CS & AI · 模块:04 Project_CS_AI/Web