amazon-web-services - AWS 上依赖 Windows EC2 后台 worker 的正确架构

标签 amazon-web-services architecture amazon-ec2 redis

基本上我们将缓存数据保存在 Redis 上,我们希望每隔 X 秒将其转储到 MongoDB 中。

我们在 Redis 上存储了一个排序集,将每个用户的最后一次事件保存为分数,我们希望在一段时间不活动后定期转储用户的最终状态,我们希望确保:

  1. 我们不会让我们的 API 服务器不堪重负(这就是它必须在工作实例上运行的原因。
  2. 数据转储操作非常关键 - 我们要求这些工作实例具有可扩展性和对故障的高度弹性(并且应该优雅地处理故障)。
  3. 我们必须确保,如果我们有 X 台机器,数据将分布在各个实例中,并且我们从 Redis 中提取的每一项都将恰好处理一次。

我想知道部署定期处理数据的 EC2 Windows 实例的最佳架构方法是什么。

我曾考虑使用 Elastic Beanstalk,因为它易于部署、扩展和监控,但我想知道是否有更好的方法。

提前致谢!

最佳答案

除了 Amazon Elastic Beanstalk 是不错选择的应用程序之外,我建议您看看 Amazon Kinesis:http://aws.amazon.com/kinesis/

那是因为您提到了“可扩展”、“弹性”、“优雅地处理故障”和“恰好一次”。在分布式系统中很难获得这些属性,而 Kinesis Streams 和 Client Library 可以在这方面提供很大帮助。

关于amazon-web-services - AWS 上依赖 Windows EC2 后台 worker 的正确架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26151410/

相关文章:

postgresql - Amazon Redshift 如何从 s3 复制并设置 job_id

database - 使用 amazon simpledb 匿名阅读

mysql - 表架构查询困难

PHP 和 AWS - 按标签检索 EC2 实例

java - 通过代码计算 jBoss AS7 session 数

node.js - AWS Cloudformation - 如何将 sns 主题 arn 传递到堆栈?

mysql - 如何在AWS服务器上的Linux实例上安装和使用mysql连接器/odbc

java - 分离模型、 View 和 Controller 的最佳方法

architecture - 只能由一项服务处理的项目

linux - 为什么有这么多apache进程在运行?