【发布时间】:2016-05-13 05:42:08
【问题描述】:
我有一个在弹性 beanstalk 服务器上运行的节点 js 应用程序。服务器配置为在负载变高时自动扩展。我在想,如何在所有实例之间共享变量?一种方法是将它们保存到 dynamodb,但没有更简单的方法吗?
【问题讨论】:
标签: node.js amazon-web-services amazon-elastic-beanstalk
我有一个在弹性 beanstalk 服务器上运行的节点 js 应用程序。服务器配置为在负载变高时自动扩展。我在想,如何在所有实例之间共享变量?一种方法是将它们保存到 dynamodb,但没有更简单的方法吗?
【问题讨论】:
标签: node.js amazon-web-services amazon-elastic-beanstalk
你所说的“变量”到底是什么意思?会话数据?全球应用数据?
一般来说,当应用程序分布在 AWS 上的多个服务器上时,您希望通过数据库(RDS 或 DynamoDB)或缓存(ElastiCache)共享数据,并且希望通过 S3 共享文件。
您可以在负载平衡器上打开粘性会话,以便来自单个用户的所有请求都将发送到单个服务器。这可以防止用户在应用程序横向扩展时突然注销或丢失数据,而无需将该用户的数据传送到新服务器。如果您有长时间运行的用户会话,那么粘性会话可能会妨碍服务器之间的最佳负载平衡。
如果您想跨服务器共享会话,以防止需要粘性会话,或者只是更优雅地处理缩减事件,您可以store user sessions in Redis (ElastiCache)。
【讨论】: