1

我一直在使用几个 Node.js 框架来创建我通常使用 Heroku 部署的应用程序。最近我在 Derby 的文档页面上看到了这个免责声明:

请注意,虽然 Derby 支持多个服务器,但它目前需要客户端重复连接到同一服务器。Heroku 不支持粘性会话或 WebSocket,因此不能使用多个测功机。您必须使用不同的托管选项来扩展您的应用程序。

这显然与可扩展性有关。由于上面的陈述,我理解这不是 Node 限制,而是 Heroku 限制。

首先,这准确吗?也就是说 - 我无法在 Heroku 上扩展 Node 应用程序?

如果这是事实,我应该转向哪里?AWS?

谢谢。

4

1 回答 1

1

Derby is not a typical Node.js app. Derby (and Meteor) are essentially complete frameworks built on top of Node. Websockets is not yet supported on Heroku: https://devcenter.heroku.com/articles/using-socket-io-with-node-js-on-heroku

However, the typical alternative to sticky sessions for regular Node apps is to use a datastore like Redis (or Postgres or Mongo) to store session data. This is a far more robust approach than sticky sessions, as it's resilient to the failure of any particular device.

Take a look at http://12factor.net/ for more info on horizontal scaling.

于 2013-09-02T01:58:24.447 回答