我正在构建一个使用socket.io的Sails应用程序,并看到Sails提供了一种通过redis使用多个服务器的方法:
http://sailsjs.org/documentation/concepts/realtime/multi-server-environments
由于我将应用程序放在AWS上,最好使用ELB(弹性负载均衡器)和具有多个EC2实例的自动缩放组,我想知道如何处理,因此它不需要单独的redis实例?
也许我们可以使用AWS Elasticache?如果是这样 - 如何做到这一点?
既然AWS已经发布了具有websockets的新ALB应用程序负载均衡器,那么这可以用来帮助简化事情吗?
提前致谢
应用程序中用例的更新
允许最终用户从自己的信息中心动态更新数据 并向管理员实时显示分析/统计信息
应用程序状态'根据具体时间进行更改,例如:在... 给定开始日期/时间,应用程序允许用户更新数据。
答案 0 :(得分:1)
关于第一个问题,您不希望在运行Sails的相同服务器上运行Redis,尤其是在使用AutoScaling时。 Redis服务器需要是一个单独的服务器,如果您的环境遇到“扩展”事件,它将不会消失。所以Redis将不得不在某个地方单独使用“服务器”。
ElastiCache只是单独的EC2实例,运行Redis,AWS为您处理大部分管理,甚至无法通过SSH连接到实例。它与RDS的工作方式类似。 ElastiCache肯定适用于您的场景。您可能还想查看第三方服务RedisLabs,它还为您管理AWS上的Redis实例。
关于第二个问题,应用程序负载均衡器与Redis的使用无关。但它会为WebSockets带来实际支持,听起来你正在使用它。所以是的,你应该使用ALB而不是ELB。