暂时有一个需求,就是需要 serve 文件,同时希望对于文件做一个 cache ,在 k8s 上,由于一些个别原因用不了 CDN (或者说实际需求比描述的更复杂,CDN 不好上)
现在能想到的就是做一个 LRU cache 服务,cache 到 mem 和本地硬盘,再拿一个文件对象服务做更深度的存储(比如 s3 ,minio )去回源
类似这种需求还有什么更好的办法吗?
PS: 文件非常多,非常杂,大小在 10kb - 3MB 左右,但是请求存在 2/8 定律
1
3IOhG7M0knRu5UlC 2024-10-16 20:40:52 +08:00 via Android
你可以做一个节点的 cdn
|
2
pagxir 2024-10-16 21:02:09 +08:00 via Android
fuse+nfs+cachefilesd 自带缓存+回源,但是是不是 lru 就不清楚了
|
3
qiusu88 2024-10-16 21:48:13 +08:00
很好奇不能上 CDN 的原因
|
4
importmeta 2024-10-16 22:17:10 +08:00
|
8
annoygaga OP @importmeta cache 量比这个大,得借助磁盘的那种,有很多媒体文件(当然都是小文件)
|
9
zu1y 2024-10-17 00:18:26 +08:00
直接塞 Redis 里算了。你这每个实例都 cache 相同的数据,加起来的资源消耗肯定比 Redis 更大了
|
10
annoygaga OP @zu1y 目前是想塞 redis ,但可能所有文件都比 redis 内存大,所以还需要一个存对象的方案,现在想找一个便宜同时快速的对象方案
|
11
mytsing520 PRO 自建 CDN
|
12
billzhuang 2024-10-17 10:06:37 +08:00
如果没有找到合适的 CDN 厂商,大概率是自己实现错了。
|
13
joyypjh 2024-10-17 10:09:04 +08:00
nginx 简单的 proxy_cache 不能满足需求吗
|
14
birdhk 2024-10-17 10:18:48 +08:00
fluid 呢,缓存文件提供 pvc 挂载
|
15
R4rvZ6agNVWr56V0 2024-10-17 15:23:27 +08:00
|
16
annoygaga OP @billzhuang 讲白了就是自由度很高,接了 CDN 也需要搞不少事情。。。,而且回源速度也是问题
|