使用微服务每分钟处理100个请求

时间:2017-10-29 07:30:51

标签: javascript node.js heroku microservices pivotal-cloud-foundry

我的node.js应用程序应该处理以下

  
      
  1. 获取zip文件提取这些文件(带有一些键和值的js模块文件 - 最多20个文件,但通常每个文件的5-8个文件   请求)
  2.   
  3. 对这些文件进行一些分析并从中创建新文件并将其发送回客户端(如果请求包含5个文件,   分析应返回相同的5个新文件等...)
  4.   
  5. 压缩此新文件并将其发送回客户端
  6.   

我已经创建了可以正常分析的模块,对于大约10个文件,大约需要250-300毫秒来进行分析并创建新文件。

让我们假设我需要为可以执行此操作的100个客户提供服务

现在我想创建一些扭曲此功能的stateless微服务,基本上做

get zip
extract zip
manipulate 
zip
send files

为此我想在云端创建一个micro service(无状态)(我想将其部署到云端(云代工/ Heroku) 应该处理它 我的问题是如何处理多个请求? ,假设我每分钟有100个请求...... 我知道应该可以正常工作异步,但我仍然担心10个或更多请求我的应用会崩溃...

队列?缩放?

1 个答案:

答案 0 :(得分:0)

  

我明白这应该是异步但仍然,我担心10个或更多请求我的应用程序将被粉碎

I believe you have a bad idea on what a stateless server is.

无状态服务器功能强大,可扩展且可扩展。无状态服务器可以处理超过您提到的请求而不会被压缩,直到您在云计费帐户中有足够的信用额度 - 至少这是我们使用无状态服务器的全部原因

为此,您的应用程序可以处理任意数量的请求:)

如果您仍然担心,请尝试拆分您的应用程序。比如 - 让你的一个函数进行提取,一旦完成,就可以请求分析函数来启动它的工作。您可以使用pub / sub或API端点与不同的无状态服务器进行通信(只需检查文档)