这是我想要的本质:
- 有一个服务 X,其他服务可以使用该服务来流式传输服务于 X 存储的文件。例如。 GET/files/8c267d1c-2b6d-4fe3-969f-4820fe8b3a9c 返回
foo.txt
的内容可能被服务 A、B、C 多次请求。 - 服务 X 使用一些无服务器技术(例如 Azure Functions)来实现
- 显然,我需要某种类型的缓存系统,这样我就不必每次都从其存储位置流式传输文件。而不是像这样的两部分流
A <------ Instance of X Application <----- X's storage (e.g. Azure Files)
如果有这样的就太好了
A <------ [TBD]
- 显然,我希望它能够扩展
- 理想情况下,我想使用现成的解决方案
- 理想情况下,我不想向客户端服务 A、B、C 公开存储机制以供他们直接访问。
这些目标不相容吗?
最佳答案
不确定您是否已经考虑过 CDN 。市场上有相当多的提供商,其中大多数分布在全局范围内。很大程度上取决于您更新这些内容的频率。如果它们不是真正静态且经常更新,那么 CDN 可能不符合目的。
它确实满足了您的前两个目标,但 CND 对于其运行方式有一个预定义且已发布的良好架构,因此不太确定您关于不公开存储机制的观点。不过,您可以控制这些内容的访问策略。
关于azure - 如何在微服务/无服务器架构中创建文件缓存层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54272972/