proxy-pool/docs/superpowers/specs/2026-07-30-readme-refresh-design.md
youfak c65ab49112
Some checks are pending
ci / test (ubuntu-latest) (push) Waiting to run
ci / test (windows-latest) (push) Waiting to run
ci / race (push) Waiting to run
ci / integration (push) Waiting to run
docs: design README refresh
2026-07-30 21:40:31 +08:00

107 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# README 首页重写设计
## 1. 目标
将根目录 `README.md` 从早期的“设计基线与项目骨架”说明,更新为与当前代码
一致的工程首页。README 必须让首次访问者在几分钟内回答以下问题:
1. Proxy Pool 解决什么问题,为什么区分 Gateway 与 Distribution。
2. 当前已经实现和验证了哪些能力。
3. 哪些模块仍是局部实现、协议或部署占位,不能视为生产完成。
4. 如何验证、配置并启动当前可运行的 Controller。
5. 后续实现按什么优先级推进。
README 不承担完整设计文档职责;细节继续链接到 `docs/` 中的权威文档。
## 2. 目标读者
- 评估项目能力和成熟度的技术负责人。
- 部署、维护 Controller 与存储依赖的开发者和 SRE。
- 需要理解模块边界、测试入口和后续任务的贡献者。
内容优先级依次为事实准确、快速定位、可执行、简洁。README 不采用营销页
结构,也不宣称未经代表性压测证明的 100,000 QPS 能力。
## 3. 内容结构
README 按以下顺序组织:
1. **项目名称与一句话定位**:多供应商动态代理的集中控制、独占提取和高并发
转发平台。
2. **项目背景**:说明供应商响应格式、短 TTL、容量、健康、路由和高并发数据面
隔离问题。
3. **使用方式**:明确 Gateway 是平台代转发Distribution 是一次性独占发放,
Admin 是管理入口。
4. **核心能力**按配置、Provider、活动池、Distribution、Gateway、Admin、
存储与安全列出已经落地的能力。
5. **架构概览**:使用一张紧凑 Mermaid 图展示 Client、Gateway、Controller、
Checker、PostgreSQL、Redis 和 Provider 的关系,并重申 Gateway 热路径边界。
6. **当前完成度**:展示实施计划 `52/74`、约 `70.3%` 的快照,同时分别列出
已完成、部分完成和待完成模块。标注统计日期,并链接实施计划,避免把数量
完成度等同于生产就绪度。
7. **快速开始**:列出 Go、PostgreSQL、Redis、Docker 等前置条件,提供配置校验、
全量验证、Redis/PostgreSQL/Controller fixture 和当前 Controller 启动命令。
8. **关键配置与入口**链接配置样例、Distribution/Admin API、Metrics 探针和
Secret 要求,不在 README 复制长配置。
9. **核心不变量**保留并完善热路径、容量、独占提取、数据边界、CONNECT
重试和公开监听保护规则。
10. **路线图**:按 P0/P1/P2 展示 WorkerControlPlane/Snapshot、Checker/健康链、
Gateway 进程装配、Routing 运行链、观测部署和代表性集群压测。
11. **文档导航**:按设计、开发/API、部署运维、审计测试分组避免单一长列表。
## 4. 状态表达规则
- **已完成**:生产代码存在,并至少有单元、契约或真实依赖集成证据。
- **部分完成**领域内核、Handler、协议或部署清单存在但进程装配或端到端链路
尚未闭环。
- **待完成**:只有计划、配置字段、协议定义或部署占位。
- `100,000 QPS` 始终表述为集群设计目标,直到存在可复现的代表性负载报告。
- 不把 Docker Compose/Kubernetes 静态配置验证描述为完整生产部署验证。
- 不把 protobuf descriptor 编译描述为 gRPC 服务端已经实现。
- PostgreSQL 只描述管理面数据Proxy 明细、Worker 运行态和短期幂等仍属于 Redis
或节点内存。
## 5. 快速开始边界
README 只提供仓库当前真实可执行的命令:
- `go run ./deploy/tools/configcheck deploy/config/local.yaml`
- `./scripts/verify.ps1`
- `./scripts/test-redis.ps1`
- `./scripts/test-postgres.ps1`
- `./scripts/test-controller.ps1`
- `go run ./cmd/proxy-controller -config CONFIG_FILE`
启动示例必须说明 PostgreSQL、Redis、配置中引用的环境变量以及 Admin 启用时
至少 32 字节的 `PROXY_POOL_CONFIG_FINGERPRINT_KEY`。README 不提供不存在的
`proxy-gateway`、`proxy-checker` 或 `proxy-loadgen` 启动命令。
## 6. 路线图
- **P0控制面闭环**Worker 注册/session、Snapshot ledger、ACK、运行态接收、
Worker 维度 ownership 索引和 Gateway 快照客户端。
- **P0健康链**Checker 调度、实际探测、Observation reducer、目标健康隔离和
FETCHED 到 AVAILABLE/SUSPECT/UNHEALTHY 的运行链。
- **P1数据面进程**`proxy-gateway` 命令装配、Routing 五策略和
`onUnavailable` 运行时、动态降容与 Drain 闭环。
- **P1可观测与部署**:低基数业务指标、完整 Compose/Kubernetes 进程拓扑、
故障转移和恢复演练。
- **P2容量证明**`proxy-loadgen`、HTTP/CONNECT/Extract 分场景压测和
100,000 QPS 集群报告。
## 7. 验收标准
1. README 中的命令和路径均指向仓库中的真实目标。
2. README 相对链接通过 `go test ./docs`
3. README 中的配置文件通过现有配置示例测试和 `configcheck`
4. 已完成/部分完成/待完成状态与实施计划、完成度审计和代码现状一致。
5. 全文不包含未完成占位标记、虚假生产就绪声明、Secret 值或代理明细示例。
6. 文档修改通过 `git diff --check` 和全量 `go test ./...`
## 8. 非目标
- 不在本次修改中实现新的运行时功能。
- 不重写 `docs/` 下已有的详细设计、API 或运维文档。
- 不生成营销图片、徽章、发布包或未经验证的性能图表。
- 不改变配置、API、存储 Schema 或部署行为。