Files
cache-proxy/memory-bank/techContext.md
guochao 2a0bd28958
Some checks failed
build container / build-container (push) Has been cancelled
use cline and prepare to test the project for further development
2025-06-10 14:14:32 +08:00

27 lines
1.4 KiB
Markdown

# 技术栈与开发环境
## 核心技术
- **语言**: Go (Golang)
- **主要依赖**:
- `gopkg.in/yaml.v3`: 用于解析 `config.yaml` 配置文件。
- `log/slog`: Go 1.21+ 内置的结构化日志库。
- `net/http`: 用于构建 HTTP 服务器和客户端。
- `github.com/getsentry/sentry-go`: (可选)用于错误追踪。
## 开发与构建
- **依赖管理**: 使用 Go Modules (`go.mod`, `go.sum`) 进行依赖管理。
- **配置文件**: 项目的行为由 `config.yaml` 文件驱动。
- **容器化**:
- `Dockerfile`: 用于构建项目的 Docker 镜像。
- `compose.yaml`: 用于在开发环境中启动服务。
- `compose.release.yaml`: 用于在生产环境中部署服务。
## 关键技术点
- **并发模型**: 大量使用 goroutine 和 channel 来实现高并发。特别是 `fastesUpstream` 函数中的并发请求模式。
- **流式处理**: 通过 `io.Reader``io.Writer` 接口,数据以流的形式被处理,从未完全加载到内存中,这对于处理大文件至关重要。
- **错误处理**: 在 Go 的标准错误处理之上,项目在某些关键路径(如 `fastesUpstream`)中使用了 `context` 包来处理超时和取消操作。
- **结构化日志**: 使用 `slog` 库,可以输出结构化的、易于机器解析的日志,方便调试和监控。