具有大量数据传输的应用程序架构

问题描述 投票:0回答:1

我想设计一个可以处理大量数据传输的应用程序。

该应用程序非常简单——有前端、后端、数据库和存储。当用户进入前端时,他可以上传音频文件并选择文件将转换为的格式。前端将文件发送到后端。后端通过询问数据库来检查是否已经转换了该文件。如果有,后端从数据库返回下载URL。如果没有,它将文件发送到转换器函数,当转换器完成时,它从转换器下载文件,将其存储在存储中并在数据库中创建一个条目。然后它将下载 URL 发送回客户端。

我现在正在寻找 Firebase 来促进整个项目。我正在使用用于登录/注册的 Firebase 身份验证、用于数据库的 firestore、用于后端的云功能中的 Express 应用程序和用于存储的云存储来实现它。

我担心的是定价和可扩展性。我预计至少有 1000 个并发用户。我预计会有大量文件从存储和云功能传输到/输入到存储和云功能中。转换不是由这个应用程序处理的,所以基本上没有计算。

对于这样的应用程序来说,最好的架构是什么?哪些云提供商提供最低的数据传输和存储价格?如何使我的应用程序可扩展,以便它可以同时处理许多用户?

architecture cloud google-cloud-data-transfer
1个回答
0
投票

您可以通过配置扩展您的云功能:

...
const { setGlobalOptions } = require("firebase-functions/v2");

setGlobalOptions({
  maxInstances: 10,
  region: "europe-west3",
  timeoutSeconds: 120,
  memory: "512MiB",  // You can increase though
});
...

您的限制是云函数的计算时间和内存限制问题。因此,您需要分割文件,然后逐批进行。您可以在设置存储后编写一个云触发器函数,保存可下载的 url,然后将其保存到 firestore 后可以由云函数触发器处理。如果您需要超过 1000 个并发用户,您的热门功能计数(

maxInstances
)也可能会增加。但我们知道,云函数已经在调用热函数上进行了扩展,仅在首次执行时的延迟更短。

© www.soinside.com 2019 - 2024. All rights reserved.