在微服务环境中提供静态文件?

时间:2017-12-22 08:26:51

标签: microservices devops system-design

为微服务架构(生产中)部署的应用程序提供静态文件的首选方法是什么?

为简单起见,我说有3个应用服务器和一个负载均衡器可以将请求转发给这些服务器。

  • 负载均衡器应该存储文件并根据请求立即提供吗? OR ..
  • 负载均衡器是否应该将静态文件转发请求到不同的应用程序实例(每个请求到另一个实例)?

这是最好的做法吗?

2 个答案:

答案 0 :(得分:0)

最佳做法是将其存储在用于静态内容的服务中,例如blob存储(在云中是Azure存储,S3等)。如有必要,可以利用CDN改善最终用户的延迟和吞吐量。

但是,正如其他人所评论的那样,有很多方法可以根据您的特定要求进行处理。

答案 1 :(得分:0)

正如其他评论/答案中所述,有很多方法可以解决这个问题。这在很大程度上取决于您的实际需要(版本控制、访问控制、http 标头、CDN)。

特别是对于您的问题,如果是我,我不会在负载均衡器上部署这些文件,因为更新版本的静态文件需要在负载均衡器上停机。相反,我会构建非常简单的 Nginx/Caddy 容器,它们的唯一目的是为这些文件提供服务,并让 LB 将流量路由到这些容器。