应用:通过裁剪/调整大小/压缩主图像,动态提供响应式和优化的图像
电流负载:每分钟 10k 个请求,~60MBps 流量。
当前配置:NginxPlus LB 位于顶部。多个应用服务器带有 nginx->tomcat。在每个应用服务器上,图像都缓存在 nginx 中
当前的问题:
- 缓存命中率差,因为缓存是分散的,同一个请求命中同一个服务器的概率很低。
- 重复缓存,尽管这是可以容忍的
- 清除缓存很麻烦。由于缓存可能存在于多台服务器上,因此,要清除缓存,需要从所有应用服务器中清除缓存
潜在解决方案
Nginx 负载均衡器一致性哈希。这种方法的问题在于,它可能会导致流量分布不均匀
引入几个 nginx 服务器的中间层:可以在 LB 和应用服务器之间引入专用的 nginx 缓存层。但是,假设我在此层保留 3 个服务器,尽管数量级较低,但仍然有重复缓存和清除头痛的问题。
如果只有一个 nginx,磁盘 I/O 可能会成为问题
有没有人有解决此用例的经验? 不管是使用 nginx 还是其他。 欢迎分享您的想法。