首页 > 解决方案 > 如何使用 NodeJs 实现 Google App 引擎冗余

问题描述

我有一个关于应用引擎 (GAE) 的 NodeJs 项目。

每当服务调用发生意外崩溃时,NodeJs 必须重新启动(我相信这是正常的),但是,这会使整个服务器在几秒钟内不可用,这可能会影响其他用户。

我正在考虑创建两个服务器实例,这样如果一个实例失败,另一个实例仍然可以处理请求。

但是,我不确定这会带来更多的工作,因为 node js 项目会执行一些初始化程序并安排一些 cron 任务。如果我创建更多实例,chron 任务会被重复吗?

或者在这种环境中管理冗余的最佳方法是什么?

标签: node.jsgoogle-app-engineinitializationcron-taskredundancy

解决方案


要始终运行 2 个实例,请在app.yamlset中执行此操作

automatic_scaling:
  min_instances: 2

https://cloud.google.com/appengine/docs/standard/python/config/appref#scaling_elements

Chron 任务不会重复。

这是获得这种冗余的方法,但它的代价是必须始终为 2 个实例付费

但是,当您实际上遇到“服务调用中的意外崩溃”时会发生什么。这听起来不正常。


推荐阅读