amazon-web-services - 在 AWS 上具有多个实例的 Sails 应用程序 - Redis/Elasticache/ALB

标签 amazon-web-services redis sails.js amazon-elb amazon-elasticache

我正在构建一个使用 socket.io 的 Sails 应用程序,发现 Sails 提供了一种通过 redis 使用多个服务器的方法:

http://sailsjs.org/documentation/concepts/realtime/multi-server-environments

由于我将把应用程序放在 AWS 上,最好使用 ELB(弹性负载均衡器)和具有多个 EC2 实例的自动缩放组,我想知道我该如何处理它而不需要单独的 redis 实例?

或许我们可以使用 AWS Elasticache?如果是这样 - 这将如何完成?

现在 AWS 已经发布了具有 websockets 的新 ALB 应用程序负载均衡器,这可以用来帮助简化事情吗?

提前致谢

应用中用例的更新

  1. 允许最终用户从他们自己的仪表板动态更新数据 并向管理员实时显示分析/统计信息

  2. 申请状态会根据特定时间发生变化,例如。在 给定开始日期/时间,应用允许用户更新数据。

最佳答案

关于您的第一个问题,您不想在运行 Sails 的同一台服务器上运行 Redis,尤其是在您使用 AutoScaling 时。 Redis 服务器需要是一个独立的服务器,如果您的环境遇到“缩减”事件,它不会消失。因此,Redis 将不得不位于某个地方的单独“服务器”上。

ElastiCache 只是独立的 EC2 实例,运行 Redis,其中 AWS 为您处理大部分管理,以至于您甚至无法通过 SSH 进入实例。它类似于 RDS 的工作方式。 ElastiCache 肯定适用于您的场景。您可能还想看看第三方服务 RedisLabs,它也为您管理 AWS 上的 Redis 实例。

关于您的第二个问题,Application Load Balancer 不会影响您对 Redis 的使用。然而,它会带来对 WebSockets 的实际支持,这听起来像是您正在使用的。所以是的,您应该使用 ALB 而不是 ELB。

关于amazon-web-services - 在 AWS 上具有多个实例的 Sails 应用程序 - Redis/Elasticache/ALB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39258951/

相关文章:

GetClient 调用上的 Redis 超时过期消息

asp.net-core - 具有 Redis 持久性的 MassTransit saga 给出了 Method Accpet does not have an implementation exception

javascript - Sails js 未声明的变量 : NaN when modelling associations

sails.js - 如何使用 ejs 模板在 Sailsjs 中设置元描述标签?

node.js - 如何在sails中使用像 'array'和 'json'这样的属性类型

amazon-web-services - Codebuild 失败时使用 Cloudformation 模板发送通知邮件

node.js - AWS 的 Azure 服务总线等效项

amazon-web-services - 无需电子邮件或电话即可确认 AWS Cognito 用户

string - AWS Cloudformation 属性 SubnetIds 的值必须为字符串列表类型

django - 带有 Celery 的 Redis 键的自定义前缀