集中缓存图片

集中缓存图片

应用:通过裁剪/调整大小/压缩主图像,动态提供响应式和优化的图像

电流负载:每分钟 10k 个请求,~60MBps 流量。

当前配置:NginxPlus LB 位于顶部。多个应用服务器带有 nginx->tomcat。在每个应用服务器上,图像都缓存在 nginx 中

当前的问题

  • 缓存命中率差,因为缓存是分散的,同一个请求命中同一个服务器的概率很低。
  • 重复缓存,尽管这是可以容忍的
  • 清除缓存很麻烦。由于缓存可能存在于多台服务器上,因此,要清除缓存,需要从所有应用服务器中清除缓存

潜在解决方案

  • Nginx 负载均衡器一致性哈希。这种方法的问题在于,它可能会导致流量分布不均匀

  • 引入几个 nginx 服务器的中间层:可以在 LB 和应用服务器之间引入专用的 nginx 缓存层。但是,假设我在此层保留 3 个服务器,尽管数量级较低,但仍然有重复缓存和清除头痛的问题。

  • 如果只有一个 nginx,磁盘 I/O 可能会成为问题

有没有人有解决此用例的经验? 不管是使用 nginx 还是其他。 欢迎分享您的想法。

相关内容