feat: 重组项目结构并完善运行管理
This commit is contained in:
@@ -16,11 +16,14 @@
|
||||
|
||||
## 当前技术方向
|
||||
|
||||
- `dht-crawler` 负责可复用的 DHT 协议节点发现 Peer 查找和 Metadata 下载
|
||||
- `dht-search` 负责持久化去重索引搜索接口配置和运行生命周期
|
||||
- `src/crawler` 负责可复用的 DHT 协议节点发现 Peer 查找和 Metadata 下载
|
||||
- `src/search` 负责持久化去重索引搜索接口配置和运行生命周期
|
||||
- `src/web` 负责最终用户搜索诊断和配置管理界面
|
||||
- RocksDB 保存权威数据去重信息和任务状态
|
||||
- Tantivy 保存可以从 RocksDB 重建的搜索索引
|
||||
- Axum 提供搜索详情统计和健康检查接口
|
||||
- 用户配置使用强类型 DTO 表达 TOML 只是当前持久化适配器
|
||||
- SQLite 保存有明确保留上限且可安全删除的运行诊断历史
|
||||
- 所有长期任务通过有界队列和背压控制资源占用
|
||||
|
||||
如果实际运行证明 RocksDB 的构建部署或资源成本不合适可以重新评估 redb SQLite 或其他存储方案
|
||||
@@ -33,7 +36,7 @@
|
||||
|
||||
### 任务
|
||||
|
||||
- [x] 将 workspace 扁平化为 `dht-crawler` 和 `dht-search`
|
||||
- [x] 将 crawler search 和 web 源码统一收纳到根目录 `src`
|
||||
- [x] 使用当前 Git 配置统一作者仓库许可证和 edition 元数据
|
||||
- [x] 编写 `AGENTS.md` 记录架构边界和开发约定
|
||||
- [x] 将最终应用与可复用 DHT 基础库分离
|
||||
@@ -183,7 +186,7 @@
|
||||
- [x] 修复一键启动脚本只停止父进程导致 Vite 子进程残留的问题
|
||||
- [x] 定义统一错误响应
|
||||
- [x] 限制查询长度分页大小和最大 offset
|
||||
- [ ] 增加请求延迟错误率和并发指标
|
||||
- [x] 增加请求延迟错误率和并发指标
|
||||
- [x] 增加搜索详情字段和按需验证入队 API 端到端测试
|
||||
- [x] 增加搜索过滤折叠精确哈希和变体接口测试
|
||||
|
||||
@@ -333,7 +336,18 @@
|
||||
- [x] 将规模基准拆分为参数数据集工作负载采样报告和编排模块
|
||||
- [x] 明确单元组件集成端到端和性能测试层级并增加公开 API 集成测试
|
||||
- [x] 实现可回滚的无效文件过滤并重建有效内容聚合和搜索索引
|
||||
- [x] 将 crawler search 和 web 统一迁移到根目录 `src` 并修复构建脚本文档路径
|
||||
- [x] 使用领域 Metadata DTO 切断领域层对 DHT 传输 DTO 的直接依赖
|
||||
- [x] 将配置拆分为可序列化 DTO TOML 读取适配器和运行时解析结果
|
||||
- [x] 使用独立 SQLite 建立有界运行诊断历史存储
|
||||
- [x] 采集进程 RocksDB Tantivy DHT 队列和磁盘资源快照
|
||||
- [x] 提供当前诊断快照和原始或分钟历史查询接口
|
||||
- [x] 将 HTTP 请求并发客户端错误服务端错误和延迟分布写入诊断历史
|
||||
- [x] 增加配置查询完整校验原子保存并发修订和统一重启提示
|
||||
- [x] 增加 Web 诊断页和配置管理页
|
||||
|
||||
完成二十四小时持续运行并继续观察私有内存 Metadata 成功率候选队列深度和每条成功 Metadata 的网络成本
|
||||
|
||||
随后补充 RocksDB 和 Tantivy 内部资源指标并根据实测继续调优
|
||||
RocksDB Tantivy HTTP 和进程资源指标已经接入诊断历史 后续根据长期实测继续调优
|
||||
|
||||
下一轮结构优化优先拆分 crawler 中的运行统计调度器和抓取引擎以及 search 中的 RocksDB 适配器 不为拆分而新增 crate
|
||||
|
||||
Reference in New Issue
Block a user