azure - 如何在微服务/无服务器架构中创建文件缓存层

标签 azure service architecture azure-storage microservices

这是我想要的本质:

  • 有一个服务 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/

相关文章:

android - 使用 Android 从云端检索数据

node.js - NodeJS - 服务无法使用 mongo -

java - 来自另一个包的bundle.update()失败

Python 服务文件缓存 Apache 竞态条件

.net - 在 .NET 中限制对 DLL 的访问

azure - 当我在 App Insights 中打开实时指标时,为什么会收到 "Not available: your app is offline or using an older SDK'?

azure - 停用高级数据安全性

azure - 您可以将azureml Rest端点从公共(public)更改为私有(private)吗

c - 服务器架构之谜,C编程

iOS:应用程序中的模型架构