楼主
仓库地址:https://github.com/tortb/rpicx-randpic.git
架构: OSS Bucket 存储图片 → OSS Sync 同步 URL 索引 → 分片 JSON 持久化 → 内存加载 → 随机返回。统计在进程内完成(原子计数 + RwLock)。
特点:
无数据库、无 Redis 依赖(统计全部进程内)
无图片缓存(由 CDN / OSS 处理)
分片 JSON 存储 URL 索引(支持数百万级图片,每分片 ≤1000 条)
内存索引热替换(RwLock<Arc<[Entry]>>,重载时整体换指针,读写不互相阻塞)
进程内实时统计(请求数、QPS、UV、Referer、UA、状态码),按日/小时自动淘汰旧键
OSS 定时同步(V4 签名,每小时自动执行)
国内/海外双 CDN 域名自动切换(按 Host 头识别)
管理端点 Bearer Token 认证(定长时间比较,未配置时 fail-closed)
邮件通知(同步开始/完成/失败 + 每日运行报告 + QPS)
Prometheus 指标 + OpenAPI 文档
2H2G 服务器完全够用
技术栈
后端: Rust (Axum)
存储: 分片 JSON 文件(内存加载)
对象存储: 阿里云 OSS(V4 签名)
基础设施: Nginx 反向代理 / systemd
性能实测:i3-8100+8G内存测试qps: 10万以上
某e5 2c2g服务器qps:5000