heroku 多个测功机 socket.io
Posted
技术标签:
【中文标题】heroku 多个测功机 socket.io【英文标题】:heroku multiple dyno socket.io 【发布时间】:2014-02-07 03:23:14 【问题描述】:我正在使用 Socket.io 开发一个 node.js 应用程序,并将其部署在 Heroku Dyno 上。 Socket.io 将 RedisStore 与它的 PUB/SUB 一起使用。 Socket.io 客户端与 heroku 中的一个测功机完美配合。但是当我将 dyno 的数量增加到一个以上(比如两个)时,socket io 客户端请求不起作用。
请让我知道在为支持 socket.io 的多个 web dyno 设置 heroku 时是否需要在客户端进行任何特定配置。
【问题讨论】:
【参考方案1】:抱歉,heroku 不支持粘性会话,而且 Socket.io 也不支持
粘性负载平衡如果您计划分配负载 不同进程或机器之间的连接,你必须 确保与特定会话 ID 关联的请求连接到 产生它们的过程。
Using multiple nodes
【讨论】:
取自同一篇文章:Fedor Indutny has created a module called sticky session that ensures file descriptors (ie: connections) are routed based on the originating remoteAddress (ie: IP).
所以我相信 Heroku does
支持这一点。【参考方案2】:
engine.io github 上的一个问题中有一个很棒的线程。帮助我更好地理解了粘滞会话、engine.io 和 heroku 的问题。
【讨论】:
【参考方案3】:Heroku 现在支持粘性会话 - 但前提是您加入了他们的开发(测试版)计划。
根据我的经验,Heroku 在与 Socket.io_Redis 插件和启用设置结合使用时可以很好地与 socket.io 配合使用。
【讨论】:
以上是关于heroku 多个测功机 socket.io的主要内容,如果未能解决你的问题,请参考以下文章
您如何在单个 Heroku 测功机上运行多个 DelayedJob 工作人员?