亚马逊 AWS,弹性负载平衡

亚马逊 AWS,弹性负载平衡

我有一个用于数值数学密集型计算的服务器应用程序。用户可以生成一个“进程”并轮询进度,直到计算完成。

现在我想迁移到 Amazon AWS。我非常喜欢 Auto Scaling 和 Elastic Load Balancing 的想法。

如果我使用弹性负载平衡,如何确保用户请求(进度和最终结果)停留在用于计算结果的 EC2 单元。

如果没有办法实现这一点。更新数据库(例如 SimpleDB)并让用户使用数据库进行进度和结果查询可能是更好的方法?

答案1

ELB 具有一项称为“粘性会话”的功能,其中用户将(通过 cookie)在会话持续期间被分配到单个实例。

另一种选择是,正如您所猜测的,将内容存储在中央数据库(SimpleDB,DynamoDB,RDS 等)中,并让前端服务器检查。

答案2

@Friedrich,我同意分布式解决方案是可行的方法,至少这是我的选择;)。

一般而言,分布式数据库解决方案中的所有系统组件都分布在多台服务器上,这种架构有助于提高数据库的可用性和可扩展性,并有助于防止在执行需要大量资源的操作时出现冻结。一些数据库解决方案除了分布式设计外,还提供复制功能,这样就可以运行管理和维护任务,而不会对数据库的可用性和性能产生不利影响。

由于您有兴趣迁移到 Amazon AWS,我建议您查看远程数据传送系统泽朗德,两者都是托管在 EC2 上的数据库。我认为 Xeround 架构更加分布式,可以自动扩展而不会停机,但我不确定 RDS 是否有此选项。无论如何,我建议您检查并比较这两者,看看哪种类型的 DB 架构最适合您的要求。

相关内容