S1 净室全链路拓扑大屏 · V10.0 https://s1.eids.liuzengyu.com/ 前后端物理与逻辑架构拓扑图
🚀 打开 S1 净室主工作台 📥 下载 S1 净室 Excel 🩺 查看 /api/health 🔗 对照 HP 历史全量仓

🗺️ 一、 前后端六层全链路矢量拓扑总图 (SVG 高清可缩放)阿里云 DNS ➔ 166 CVM Caddy (TLS 1.3) ➔ ECS FRP (:39729) ➔ S1 Hub (:60229) ➔ 10线程从0爬虫 ➔ SQLite WAL 净室湖

S1 裸数据净室拓扑总图 (V10.0) https://s1.eids.liuzengyu.com/ 前后端全链路物理与逻辑拓扑图 (Frontend & Backend Topology) 阿里云 DNS (s1.eids -> 43.160.227.166) ➔ 166 CVM Caddy (TLS 1.3) ➔ ECS FRP (:39729) ➔ S1 Hub (:60229) ➔ 10线程实抓引擎 ➔ SQLite WAL 净室湖 (历史导入=0行) Ⅰ. 接入与网关隧道拓扑:公网 DNS ➔ 166 CVM Caddy ➔ ECS FRP ➔ S1 (:60229) 1A. 阿里云权威 DNS • 域名: liuzengyu.com • s1.eids ➔ A ➔ 43.160.227.166 • s1.srbg ➔ A ➔ 43.160.227.166 1B. 三大官方 HTTPS 入口 ★ https://s1.eids.liuzengyu.com/ • https://eids.liuzengyu.com/s1/ • https://s1.eids...nip.io/ 1C. 166 CVM 边缘网关 (:443) • 唯一容器: caddy-proxy • Let's Encrypt TLS 1.3 自动签发 • header_up Host 127.0.0.1 2A. 阿里云 ECS 穿透中枢 (47.121.112.172) • 控制面: frps (:39700) | Token 鉴权 + TLS + TCPMux • Web 隧道端口: :39729 (s1-eids-clean-web-39729) • Gitea 隧道端口: :39730 (s1-gitea-web-39730) 2B. S1 节点隧道守护 (Mac Studio M2 Ultra) • 配置文件: frpc_eids_s1_39729.toml • 环境变量净化: 剥离失效 http_proxy(7897) 直连 • 本地映射: remotePort 39729 ➔ 127.0.0.1:60229 🔒 网关防误杀与物理隔离对账 (HP 主仓 vs S1 净室仓): • eids.liuzengyu.com 根路径 ➔ 路由至 HP (:60228,含历史导入 V10.9=54,413行 + V2=6,391行) • s1.eids.liuzengyu.com 及 eids.liuzengyu.com/s1/* ➔ 100% 路由至 S1 (:60229,历史旧数据严格为 0 行) Ⅱ. 前端视图层拓扑:三模态 SPA 工作台 (eids_s1_clean_ui_renderer.py) 3A. 顶栏导航与 5 大实时交互控制按钮 (Top Action Bar & Theme Switcher) • 主题引擎: ☀️ Daylight (亮色日间) | 🌙 Midnight (深邃工业) | 🌿 Eyecare (护眼绿洲) + No-FOUC IIFE • 控制指令: [🚀 立即实抓一轮(+24源)] [🏛️抓L1] [🏙️抓L2] [🏢抓L3] [📥 导出S1净室Excel] [🧹 归零重置(Reset to 0)] 3B. 顶部 8 大净室核心 KPI 实时监测卡片 (4x2 Responsive KPI Grid) • [卡1] 历史旧库导入数据: 0 行 (V10.9=0 · V2=0) • [卡2] S1 从 0 实抓结构化记录 (DWD 实时递增) • [卡3] S1 权威源 HTTP 探针流水 (可达率/平均延迟) • [卡4] 149 权威源种子从 0 激活覆盖进度 • [卡5] L1 国家一类源 (38个) • [卡6] L2 省市二类源 (64个) • [卡7] L3 企业三类源 (47个) • [卡8] 40指标/53省市/239链 3C. 中部 6 大正交业务观测 Tab 面板 (Six Interactive Situational Awareness Tabs) • Tab 1 [从0实抓总览与批次]: 38/64/47 配比卡 + 批次账本 + Top 40 探针快照 + HP vs S1 隔离对照 • Tab 2 [DWD 实抓结构化明细]: 实时搜索/L1-L3过滤,展示提取标题、摘要、映射省市/产业链/指标与 SHA-256 • Tab 3 [149 权威源探针实况] & Tab 4 [40项 V2 指标从0进度]: 逐源展示抓取次数、HTTP状态码、耗时与页面标题 • Tab 5 [53省市 × 239产业链点亮矩阵] & Tab 6 [三大 HTTPS 通道与 /Users/baigong/eids_s1_system/ 八层目录] Ⅲ. 后端服务与实抓引擎拓扑:S1 Hub (:60229) ➔ 10线程从 0 并发爬虫 4. 后端 HTTP 路由与并发控制中枢 (06_web_hub_runtime/eids_s1_clean_hub_server.py :60229) • 运行时守护: LaunchAgent (com.cogniforge.s1.eids-clean-hub.plist) + Docker (Dockerfile.eids-s1 / compose) • 路径自适应 (_norm_path): 自动识别根路径 `/` 与 `/s1/*`,无缝同时服务 s1.eids.liuzengyu.com 与 /s1/ • GET / & /topology ➔ 渲染净室工作台 HTML 与全链路交互式拓扑大屏 • GET /api/health & /api/dashboard ➔ 执行 query_s1_dashboard() 聚合 7 张 SQLite 表实时指标 • POST /api/crawl/trigger & /api/crawl/reset ➔ 线程安全锁 (CRAWL_LOCK) 调度爬虫批次或一键归零 • GET /api/export/excel ➔ 调用 export_s1_clean_slate_xlsx() 流式生成 4 页签净室 Excel (.xlsx) 5. S1 从 0 实抓爬虫引擎与 149 权威源采集池 (02_crawler_engine/eids_s1_zero_history_live_crawler.py) • 双触发引擎: ① _background_crawler_daemon 后台线程每 240s 自动续抓;② 前端按钮 / API 随时触发实抓 • 代理免疫直连: urllib.request.build_opener(ProxyHandler({})) 彻底绕过 S1 本地失效 7897 代理 • 10 线程并发探测 (_probe_single_source): 实测 HTTP 状态码、毫秒级延迟、响应字节数與 SHA-256 指纹 • 多编码标题与动态抽取: 自动适配 UTF-8 / GB18030 / GBK,正则提取 <title> 及正文动态头条映射入湖 • 外部 149 个权威信源池: L1 国家部委(38) + L2 省市政府与统计局(64) + L3 交易所与链主企信源(47) 代表源: stats.gov.cn | data.stats.gov.cn | gov.cn | miit.gov.cn | ndrc.gov.cn | 31省数据局 | 巨潮/上交所/深交所 Ⅳ. 数据湖与存储层拓扑:净室 SQLite 七表模型与 S1 八层目录规划 6A. S1 净室 SQLite WAL 数据湖七表模型 (03_clean_slate_db/eids_s1_clean_slate.db) • [表1] s1_clean_slate_audit_meta (净室零历史锁死表): historical_v109_rows=0, historical_v2_rows=0, reset_count • [表2] dim_s1_seed_sources (149源种子表): source_id, level(L1/L2/L3), crawl_count, http_ok_count, last_latency_ms • [表3] dim_s1_v2_indicator_schema (40项V2指标表): indicator_code, indicator_name, s1_crawled_rows (从0累加) • [表4] dim_s1_target_regions (53省市区域表) & [表5] dim_s1_target_chains (239细分产业链表): s1_crawled_rows • [表6] ods_s1_live_crawl_batches (实抓批次流水表): batch_id, probed_sources, http_ok_count, records_extracted • [表7] ods_s1_live_http_probes (HTTP探针原貌表) & dwd_s1_fresh_extracted_records (从0结构化入湖明细表) 字段含: record_id, batch_id, source_id, region_name, chain_name, indicator_name, extracted_title, payload_sha256 6B. S1 节点规范化八层物理目录与 Gitea 旁路代码仓 (/Users/baigong/eids_s1_system/) • 00_docker_stack/ (Dockerfile.eids-s1 + compose) • 01_seed_contracts/ (01_s1_seed_contracts_only.json) • 02_crawler_engine/ (从0实抓引擎) • 03_clean_slate_db/ (eids_s1_clean_slate.db WAL) • 04_raw_html_snapshots/ (原始响应快照) • 05_excel_exports/ (S1_EIDS_从0实抓净室数据总表.xlsx) • 06_web_hub_runtime/ (:60229 Web服务与UI渲染器) • 07_logs_and_telemetry/ (s1_clean_hub_60229.log & frpc) • 旁路代码双活仓: S1 Gitea Server (127.0.0.1:3000 / FRP :39730) ➔ liuzengyu/eids-situational-hub.git

🧬 二、 六层架构职责与数据流分层拆解

Layer 1 · 公网 DNS 与三通道 HTTPS 接入层

  • 正式三级域名: https://s1.eids.liuzengyu.com/ (阿里云 A记录 -> 43.160.227.166)
  • 主站子路径: https://eids.liuzengyu.com/s1/
  • 免绑备用域名: https://s1.eids.43.160.227.166.nip.io/

Layer 2 · 166 CVM 边缘网关与 ECS FRP 隧道层

  • 166 CVM: caddy-proxy 自动签发 Let's Encrypt TLS 1.3 证书
  • ECS FRP 中枢: 47.121.112.172:39729 (s1-eids-clean-web-39729)
  • S1 FRPC: frpc_eids_s1_39729.toml 穿透至 S1 127.0.0.1:60229

Layer 3 · 前端三模态 SPA 视图层 (UI Renderer)

  • 渲染引擎: eids_s1_clean_ui_renderer.py
  • 8 大核心 KPI: 历史旧库导入=0行、实抓DWD记录、ODS探针流水、149源覆盖等
  • 6 大观测 Tab + 5 大控制按钮: 立即实抓、L1/L2/L3分级抓、归零重置、Excel导出

Layer 4 · S1 后端 HTTP 与 REST API 路由层

  • 服务端: eids_s1_clean_hub_server.py (0.0.0.0:60229)
  • 只读接口: GET /, GET /topology, GET /api/health, GET /api/dashboard
  • 写与导出接口: POST /api/crawl/trigger, POST /api/crawl/reset, GET /api/export/excel

Layer 5 · S1 从 0 并发实抓引擎与 149 权威源

  • 爬虫引擎: eids_s1_zero_history_live_crawler.py (10线程并发 + 240s守护)
  • 代理免疫: ProxyHandler({}) 绕过 S1 本地失效 7897 代理直连公网
  • 149 权威源池: L1国家部委(38) + L2省市政府(64) + L3交易所与企信源(47)

Layer 6 · S1 净室 SQLite WAL 数据湖与八层存储

  • 净室数据库: 03_clean_slate_db/eids_s1_clean_slate.db (历史导入严格=0)
  • 7 张核心表: 1审计元数据表 + 4种子契约维度表 + 2批次/探针表 + 1结构化明细表
  • 代码双活: S1 Gitea (:3000) 同步镜像前后端全部源码

📋 三、 前后端物理文件、端口与 API 映射速查表

层级组件名称节点与端口S1 物理路径 / URL核心说明
接入层正式三级域名 HTTPS43.160.227.166:443https://s1.eids.liuzengyu.com/阿里云 DNS A记录 + Let's Encrypt TLS 1.3 官方证书
网关与隧道Caddy ➔ FRPS ➔ FRPC:443 ➔ :39729 ➔ :60229/Users/baigong/eids_s1_system/06_web_hub_runtime/frpc_eids_s1_39729.toml跨网 TLS+TCPMux 加密隧道直达 S1
前端视图层三模态 SPA 渲染器S1 :60229/Users/baigong/eids_s1_system/06_web_hub_runtime/eids_s1_clean_ui_renderer.pyDaylight/Midnight/Eyecare 三模态 + 8 KPI + 6 Tab
后端服务层净室 HTTP ServerS1 0.0.0.0:60229/Users/baigong/eids_s1_system/06_web_hub_runtime/eids_s1_clean_hub_server.py同时兼容 / 与 /s1/*,提供 REST API 与 Excel 流式下载
实抓爬虫层从 0 并发抓取引擎S1 守护线程 / CLI/Users/baigong/eids_s1_system/02_crawler_engine/eids_s1_zero_history_live_crawler.py10线程并发 HTTP 探测 149 源 + SHA-256 指纹
净室存储层SQLite WAL 净室数据湖S1 本地 NVMe/Users/baigong/eids_s1_system/03_clean_slate_db/eids_s1_clean_slate.db锁死 historical_v109_rows=0, historical_v2_rows=0
导出交付层净室 Excel 在线导出GET /api/export/excelS1_EIDS_从0实抓净室数据总表_CleanSlate_latest.xlsx4 张净室专表(元数据、批次流水、DWD明细、149源状态)