2013-11-01 30 views
1

让我们假设我有一个大型应用程序处理Heroku上有意义的Websockets连接数。为了应对这样的大量需求,动态数量增加到N在Heroku和Node.js上扩展websocket

Heroku的路由器如何在运行的dynos中分配新的传入websockets连接?

换句话说,如果其中一个dynos在websockets中连接最多,那么Heroku的路由器会偏离其他(据说)不太繁忙的dynos中的所有新传入请求?还是它仍然会使用随机分配as stated in the documentation for http incoming connections

这肯定是有意义的,因为websockets连接在第一个实例中是http连接。但是,在运行dynos的N之间均匀地扩展大量持久连接会相当复杂。

有人确认吗?

回答

1

您链接到的页面显示“路由器使用随机选择算法实现跨Web dynos的HTTP请求负载平衡”。这似乎是毫不含糊的。请注意,Heroku和Rap Genius在这个问题上遇到了麻烦,虽然它是在旧的Bamboo堆栈中。

通常,通过添加dynos,您应该能够避免任何一个dyno被重载,因为websockets实际上并不为每个支持的附加连接使用额外的RAM。在最坏的情况下,更繁忙的动力线应该会遭受更高的延迟。