proxy-pool/progress.md

77 lines
5.6 KiB
Markdown
Raw 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.

# 项目进度
## 2026-07-29
- 已实现共享 `httpapi`、`httpsecurity` 与 `httpserver`,统一严格 JSON、Problem、
Request ID、认证、可信代理、Client ID、准入、多监听器生命周期和优雅停机。
- Distribution/Admin Handler 已装配到独立监听器Gateway 配置认证统一复用
`httpsecurity`API 401 与代理 407 语义保持分离。
- 部署配置已使用 `${VAR}` 真实环境变量解析ConfigMap 与本地配置通过
`LoadResolved` 回归测试。
- 已新增公用 `activitypool` 契约和并发安全内存参考实现Provider 按各供应商
TTL 与安全余量写入,独占提取、短期幂等和 Worker 所有权在同一原子边界内。
- 已实现生产 Redis Activity AdapterUpsert、健康更新、原子提取、所有权、
Drain/ACK、库存读取与有界过期清理均封装为窄领域端口和 Lua 原子操作。
- MemoryPool 与 Redis Adapter 运行同一套公用契约;真实 Redis 8.2 fixture 已覆盖
100 轮并发提取和 100 轮所有权竞争,本地 Compose 不持久化短效代理数据。
- Proxy 明细不写 PostgreSQLPostgreSQL 仅保存配置版本、管理状态、Admin
审计、管理 outbox 和可选聚合指标。
- `usableUntil` 已进入 Worker Snapshot 契约Gateway 在供应商硬过期前按安全
余量停止新分配。
- PostgreSQL 管理面 Adapter、Provider Leader/分布式限流与心跳装配、生产命令
入口、Redis 故障转移验证和代表性 100,000 QPS 集群压测仍待实现。
- 已新增 ADR-006 与公用 `adminstate` 事务 seamMemoryStore 在同一锁内提交管理
状态、Admin 审计与 Outbox覆盖配置冲突、Upstream 幂等、100 并发 Routing
CAS、Outbox claim/ack 租约、上下文取消和不可变快照。
- PostgreSQL 管理 Schema 已限制为六张配置/状态/审计/Outbox 表,并由静态测试
拒绝 Proxy、凭据、逐次提取、ownership 和短期幂等明细pgx Adapter 和真实
PostgreSQL 18 契约仍待实现。
- Admin Handler 现在复用 `httpsecurity.Identity`,把 Actor ID 与可信 SourceIP
传给 enable/disable/switch/reload mutation供持久化审计直接使用。
- 已实现 Admin `ApplicationService`mutation 统一映射到 `adminstate`Status 合并
一个权威管理快照和低基数运行态聚合;配置重载严格执行解析/校验、脱敏摘要、
持久化、原子发布顺序,任何持久化失败都不会替换旧运行配置。
- 已新增公用原子 `config.Store` 与标准 `FileConfigurationLoader`;覆盖 100 组
并发读写、typed-nil、未知字段、主配置/Secret 文件 I/O、取消、Secret 轮换和
Admin 禁止依赖 Redis Extract/Proxy 明细的架构边界。
- 本轮 `.\scripts\verify.ps1`、`.\scripts\test-redis.ps1`、Compose 静态展开和
Compose 非持久化策略测试通过Windows `CGO_ENABLED=0`race 继续由 Linux
CI 执行。
- 本地 PostgreSQL 管理面基础已提交为 `7951c29`;推送
`build/proxy-pool-architecture` 时远端返回 `Authentication failed`,未重复执行
相同推送。当前本地提交保持完整,等待可用 Git 凭据后同步。
## 2026-07-28
- 用户删除了先前基于不完整网页内容生成的设计文件。
- 已重新读取当前 `对话内容.md` 全部 9,404 行。
- 已按主题定位配置定稿、实施方案、Distribution API、认证、安全、并发、
故障语义和最终 Exclusive Extraction 修订。
- 已建立新的任务计划与事实记录,旧网页摘要不再作为需求证据。
- 已建立需求追踪矩阵、统一领域语言、产品设计、总体架构、项目结构、ADR、
开发、配置、API、安全、测试与运维文档。
- 已提供 20 个严格校验的配置示例、Distribution/Admin OpenAPI、Controller/
Worker/Checker Protobuf 契约和 35 张 Mermaid 图。
- 已实现并测试 Proxy 状态/TTL/唯一键、打包原子容量、首条路由、Sequential
并发切换、Fetch 分类、一次性独占提取、严格配置、Snapshot 与本地 Dispatch。
- `go test ./...`、`go vet ./...`、`go build ./...` 通过。
- Protobuf 描述符编译、Compose 静态展开、Kustomize 渲染、Grafana JSON 与
配置示例校验通过。
- Windows 当前 `CGO_ENABLED=0` 且无 C 编译器race 测试由 Linux CI 承担。
- 100,000 QPS 仍是未验证设计目标;运行进程、存储适配器、完整网络转发与
代表性集群压测尚未实施,已在完成审计中明确列出。
- 历史文档压缩包已由用户删除,当前交付以仓库内可追踪文档为准。
- 已实现 random、roundRobin、weighted、leastConnections并将 Sequential
拆成共享 Upstream 空结果状态与每 Routing 版本化游标。
- 已实现 Provider 合并通知、完整 attempt 超时、永久错误契约、指数退避、
Retry-After、原子 FetchBudget 以及 Pool Reconciler。
- 已强制 Worker 所有权与 Exclusive Extraction 注入同一权威 Repository
覆盖 100 轮并发竞争、续期、Drain ACK 和 Worker 过期回收。
- 已实现提取服务层策略映射、Redis 短期幂等语义、来源身份准入和公共
FixedWindow 全局/Client 限流器;不保存逐代理提取审计记录。
- 已为 100k Proxy 快照建立 scheme/upstream/tag 索引;本机持续基准中
`Acquire` 为 640 ns/op、256 B/op、2 allocs/op。该数据仅证明本地选择热路径
不代表 100k QPS 集群端到端容量。
- 本轮 `go test -count=1 ./...`、`go vet ./...`、`go build ./...` 和
`git diff --check` 通过Windows `CGO_ENABLED=0`race 仍由 Linux CI 验证。