确保Node.js后端的弹性

时间:2018-02-21 16:03:34

标签: javascript node.js docker

我的应用程序使用Node.js后端。开发人员小心确保没有未捕获的异常和未处理的承诺拒绝可能导致节点进程退出。但是,仍有可能出现不可预测的情况并且该过程将崩溃。我们希望尽量减少对用户的影响。我们正在考虑以下各项的组合:

  1. 对所有HTTP请求和socket.io事件处理程序进行try / catch,并确保将意外错误报告给最终用户,而不会影响其他人。
  2. 跨多个AZ在AWS ECS(我们在AWS中)运行多个Docker容器。如果一个人崩溃,其他人就可以接收工作量,直到崩溃的工作负载恢复。
  3. 除了多个Docker容器之外,我们还在考虑使用Node.js clusterEvalQ(cl, library(XML)) clusterExport(cl, c('parse_xml', 'sbind')) 模块来进一步包含崩溃。 Docker容器可能需要一分钟才能重新启动,但工作人员可以在一秒钟内重新生成。工作人员还只对那些特定工作人员的用户进行崩溃,从而减少影响。我还认为[cluster][1]最终有助于更有效地使用计算资源。
  4. 最终,我作为建筑师的建议是应用所有这三种技术。

    我错过了什么吗?

0 个答案:

没有答案