【问题标题】:elastic beanstalk - share data between instances when auto-scale occurselastic beanstalk - 发生自动缩放时在实例之间共享数据
【发布时间】:2016-05-13 05:42:08
【问题描述】:

我有一个在弹性 beanstalk 服务器上运行的节点 js 应用程序。服务器配置为在负载变高时自动扩展。我在想,如何在所有实例之间共享变量?一种方法是将它们保存到 dynamodb,但没有更简单的方法吗?

【问题讨论】:

    标签: node.js amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    你所说的“变量”到底是什么意思?会话数据?全球应用数据?

    一般来说,当应用程序分布在 AWS 上的多个服务器上时,您希望通过数据库(RDS 或 DynamoDB)或缓存(ElastiCache)共享数据,并且希望通过 S3 共享文件。

    您可以在负载平衡器上打开粘性会话,以便来自单个用户的所有请求都将发送到单个服务器。这可以防止用户在应用程序横向扩展时突然注销或丢失数据,而无需将该用户的数据传送到新服务器。如果您有长时间运行的用户会话,那么粘性会话可能会妨碍服务器之间的最佳负载平衡。

    如果您想跨服务器共享会话,以防止需要粘性会话,或者只是更优雅地处理缩减事件,您可以store user sessions in Redis (ElastiCache)。

    【讨论】:

    • 我指的是全局应用程序数据,我通常会存储在变量中的东西类型,而不是用户会话。
    • 您还会为此推荐 ElastiCache 吗?
    • 我强烈建议您使用 RDS 实例或 S3 存储桶(使用 AWS_SDK),如果您打算共享数据,包括少量小变量。最后,正如 +Mark_B 所建议的那样,仔细研究 ElastiCache。
    猜你喜欢
    • 2019-10-16
    • 2016-07-13
    • 2016-05-23
    • 2019-12-02
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2013-04-28
    • 2014-08-17
    相关资源
    最近更新 更多