我有一个NodeJS应用程序,可以在用户请求时执行一些中等强度的逻辑工作。例如,前端的用户可以单击 Analyze ,服务器将执行工作,这可能需要30秒到1分钟(非阻塞)
我的应用不是面向广大公众,而是面向几千人。所以有几个人可能同时分析。
我目前正计划通过Elastic Beanstalk部署应用程序,但我不确定它在繁忙时如何处理服务器以及我是否必须实现某种自定义信号来告诉负载均衡器将请求发送到另一个实例,如果当前正在忙于执行分析。
据我所知,在这种情况下,Lambdas经常被视为一种选择,但我更希望保持简单,并将代码保存在我的Node应用程序中。
我应该如何设计这个以确保应用程序可以处理分析并仍然正常处理其他请求?
答案 0 :(得分:2)
Elastic Beanstalk使用Autoscaling Group来启动和维护运行Application所需的EC2实例。使用Autoscaling Groups,您可以使用Autoscaling Scaling策略动态增加/减少EC2实例计数。默认情况下,Autoscaling Group根据CPU,网络IN,网络输出,请求计数,延迟等提供扩展。您可以使用这些指标中的任何一个并动态扩展您的基础架构。
您可以参考AWS文档here以获取更多信息。