1

会话之间的状态如何管理?我知道在 Azure 中,特定于客户端的状态存储在 SQL Azure 中。我想知道这是否在 AWS 中进行了类似的操作?

您的应用程序的各种实例是否都访问了存储状态的数据库?根据您使用的技术,状态管理是否有很大不同?

4

1 回答 1

3

在“作业”级别上,Amazon Web Services 大致由两组不同的事物组成:

  • 您自己管理的基础设施服务(EC2、EBS)
  • 亚马逊为您管理的更高级别的服务(S3、DynamoDB、ELB)

当您将文件上传到 S3 时,它会存储在多个不同数据中心的多台机器上,Amazon 负责在您请求文件时查找并返回文件(并确保它不会被删除)由于机器故障。)

借助构建在其中一项基础设施服务之上的东西,例如在 EC2 上运行的应用程序,您可以自行决定如何存储和同步状态:

  • 一台服务器,内存状态(坏)
  • 没有状态处理的负载平衡(非常糟糕!)
  • 使用粘性会话进行负载平衡(明智,但本身还不够;如果该服务器掉出池,其他服务器不知道您是谁)
  • 使用具有公共状态服务器的服务器进行负载平衡

你如何存储状态?传统上是带有内存缓存(例如Elasticache - Amazon 的托管 memcached 兼容缓存) 的数据库(可能是 Amazon RDS )。Amazon 的新 DynamoDB 服务非常适合这种用途,作为一种快速、冗余的键值存储。

于 2012-06-10T22:03:07.043 回答