我有一个用于数值运算的服务器应用程序。用户可以生成一个“进程”并轮询进度,直到计算完成为止。
现在我想迁移到Amazon。我非常喜欢自动缩放和弹性负载平衡的想法。
如果我使用弹性负载平衡,如何确保用户请求(进度和最终结果)停留在用于计算结果的EC2单元中。
如果没有办法让这件事成功的话。这可能是更新数据库(例如SimpleDB )并让用户使用数据库进行进度和结果查询的更好方法吗?
发布于 2012-04-02 12:58:43
ELB有一个名为“粘性会话”的特性,用户将(通过cookie)在会话期间分配给单个实例。
另一种选择是,正如您所推测的,将东西存储在中央数据库中(SimpleDB、DynamoDB、RDS等)。让你的前端服务器检查一下。
发布于 2012-09-24 16:09:20
@Friedrich,我同意分布式解决方案是这里的出路,至少这是我的选择;)
通常,分布式DB解决方案中的所有系统组件都分布在多个服务器上,这种类型的体系结构有助于提高DB的可用性和可伸缩性,并有助于在执行需要许多资源的操作时防止冻结。除了分布式设计之外,一些DB解决方案还提供复制,这样可以在不影响数据库可用性和性能的情况下运行管理和维护任务。
由于您对迁移到Amazon很感兴趣,我建议您看看RDS和萨伦德,它们都是EC2上可用的托管数据库。我认为Xeround架构更分布式,可以在不停机的情况下自动扩展,而我不确定RDS是否有此选项。无论如何,我建议您检查并比较这两种结构,看看哪种类型的DB体系结构最适合您的需求。
https://serverfault.com/questions/375885
复制相似问题