我一直在使用几个Node.js框架来创建我通常使用Heroku部署的应用程序。最近我在德比的文档页面上看到了这个免责声明:
请注意,虽然Derby支持多个服务器,但它目前需要 客户端重复连接到同一服务器。 Heroku没有 支持粘性会话或WebSockets,因此无法使用 不止一个dyno。你必须使用不同的托管选项 扩展你的应用程序。
这显然是关于可伸缩性的。由于上面的陈述,我知道它不是Node限制,而是Heroku限制。
首先,这是准确的吗?那是 - 我无法在Heroku上扩展Node应用程序?
如果这是事实,我应该在哪里转? AWS?
感谢。
答案 0 :(得分:1)
Derby不是典型的Node.js应用程序。 Derby(和Meteor)本质上是构建在Node之上的完整框架。 Heroku尚不支持Websockets:https://devcenter.heroku.com/articles/using-socket-io-with-node-js-on-heroku
但是,常规Node应用程序的粘性会话的典型替代方法是使用Redis(或Postgres或Mongo)等数据存储来存储会话数据。这是一种比粘性会话更强大的方法,因为它可以抵御任何特定设备的故障。
有关水平缩放的详细信息,请查看http://12factor.net/。