因此,我正在更改我的许多网站的“实时”更新(目前正在使用AJAX)以使用Websockets。尝试过Pusher.com,我的流量定价非常高,所以我得到了一个懒人(欢呼史蒂夫!)在一个胖胖的EC2实例上,redis EC实例,一切都很好。现在大约100M帧/天看起来工作正常,但我想提前考虑并考虑当我有更多流量时会发生什么。
AWS ELB不支持WS通信,因为我在此处和AWS论坛上已经阅读过(考虑到自从WS首次出现以来人们要求这样做,相当蹩脚,感谢AWS!)。所以我想:
0)从一个实例开始,ws.mydomain.com
1)设置自动缩放组
2)cloudwatch警告平均CPU /内存使用
3)当它超过75%时,发出SQS消息,说“现在扩大规模”
4)当某个其他随机服务器接收到#3的消息时,轮询该队列然后启动一个新实例,将其添加到该组(ohnoes,再次使用该AWS API!)并将公共IP添加到Route53 DNS对于ws.mydomain.com,所以会有2个
5)当负载下降引发另一条消息时,基本上反过来做所有事情
所以问题是:这可能是有效的,还是应该更容易在langer节点前面使用ELB?
TIA
稍后编辑:
1)如果我们没有获得客户端IP,则不在乎
2)slanger docs宣称连接状态存储在redis中,因此客户端连接到哪个节点无关紧要,因此我们不需要任何会话粘性