Files
cache-proxy/memory-bank/productContext.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.6 KiB
Markdown

# 产品背景
在许多场景下,用户需要从软件镜像站、文件服务器或其他资源站点下载文件。然而,由于网络波动、服务器负载或地理位置等原因,单个服务器的下载速度和稳定性可能无法得到保证。
## 解决的问题
`cache-proxy` 旨在解决以下问题:
1. **单点故障**: 当用户依赖的唯一镜像服务器宕机或无法访问时,下载会中断。
2. **网络速度不佳**: 用户可能没有连接到最快的可用服务器,导致下载时间过长。
3. **重复下载**: 多个用户或同一个用户多次下载相同的文件时,会产生不必要的网络流量,增加了服务器的负载。
## 工作原理
`cache-proxy` 通过在用户和多个上游服务器之间引入一个代理层来解决这些问题。
- 当收到一个文件请求时,它会并发地向所有配置的上游服务器请求该文件。
- 它会选择第一个返回成功响应的上游服务器,并将数据流式传输给用户。
- 同时,它会将文件缓存到本地磁盘。
- 对于后续的相同文件请求,如果缓存未过期,它将直接从本地提供文件,极大地提高了响应速度并减少了网络流量。
## 用户体验目标
- **无缝集成**: 用户只需将下载地址指向 `cache-proxy` 即可,无需关心后端的复杂性。
- **更快的下载**: 通过竞争机制选择最快的源,用户总能获得最佳的下载体验。
- **更高的可用性**: 即使部分上游服务器出现问题,只要有一个可用,服务就不会中断。