【问题标题】:Are you using AWSDBProxy? Is there a performance hit when scaling out?您在使用 AWSDBProxy 吗?横向扩展时是否会影响性能?
【发布时间】:2009-02-02 01:01:41
【问题描述】:

在投反对票后,我谦卑地意识到我的帖子是一个巨大的咆哮。因此,我对其进行了编辑并将其总结为我真正想知道的问题。在此编辑之前,我为我的傲慢 cmet 道歉;)

似乎唯一谈论在 Rails 站点中使用 Amazon 的 SimpleDB 的教程是使用 AWSDBProxy...就我个人而言,考虑到下面典型 Rails 站点的服务器布局(使用AWSDBProxy):

插件在这里:http://agilewebdevelopment.com/plugins/aws_sdb_proxy

图片在这里:http://www.freeimagehosting.net/uploads/91be4e0617.png

如您所见,即使我们添加更多的杂种,我们也有两个问题。

  1. 我们的单点故障远不如我们的负载平衡器稳定
  2. 我们必须通过这个 WEBrick 服务器强制我们的所有信息

当然,解决方案是添加更多 AWSDBProxies……但为什么不直接在类中使用以下代码,一起跳过代理?

service = AwsSdb::Service.new(Logger.new(nil),
                                CONFIG['aws_access_key_id'],
                                CONFIG['aws_secret_access_key'])
service.query(domain, query)

所以我要说的是,如果您正在使用 AWSDBProxy,您有什么理由这样做?如果你确实在使用它,你的表现如何?如果你有硬数字,这将更加感激!

谢谢!

【问题讨论】:

  • 反对票删除。 ;) 此外,它可能有助于链接到 AWSDBProxy 项目,在您添加代码 sn-p 并且可以谷歌搜索模块名称之前,我无法搜索它。
  • 非常感谢 Otto :) 有时一个人只需要被打一下,呵呵。感谢您的提示,我现在将进行编辑!

标签: ruby-on-rails ruby amazon-web-services amazon amazon-simpledb


【解决方案1】:

我没有使用它,也从未听说过它,但这是我认为合理的理由。

  1. 您在 EC2 上运行您的主应用服务器,因此 Internet FAIL 对您的影响不会超过一次。
  2. 您在每个应用服务器上运行一个代理。所以它的连接断开并不比它与数据库的连接断开更糟糕。
  3. 因为它可以做到。这与开源项目中的任何理由一样好。有时,您需要先构建一个东西,然后才能知道所说的东西是好主意还是坏主意。
  4. 您没有需要负载平衡器的流量级别。然后你的图表会压缩成一条线,如果不是一台机器的话。

【讨论】:

  • 所有好的推理。我想我只是不喜欢在内存对象和简单类中处理内部网络请求的想法。我唯一不同意的是#4,因为我问的是横向扩展:D 但是,每个应用程序服务器的代理并不是那么糟糕......
  • 我会等着看有没有一些硬数字的人发帖,因为这是我最感兴趣的。易用性很棒,但我只是觉得挤压你的多个应用程序将实例放入单个代理服务器会达到目的,呵呵。感谢您的回答!
  • 同意,内部 HTTP 请求几乎可以肯定是代码异味……除了像 apache 或负载均衡器这样的 HTTP 代理。 :) 我参与了一个项目,他们在每个 EJB 上放置了一个 HTTP 接口,然后将它们全部重写以通过 HTTP 相互通信。太糟糕了。
  • 哈哈。这是围绕面向服务架构流行语的时代吗?因为我在一家公司从事我的第一份编程工作,他们要求我们构建一个访问数据库的 Web 服务,而我们的数据模型向 WS 询问数据,呸哈哈 :D 确实,臭!
  • 我可能会补充一点,我们从未将 WS 用于其他任何事情,哈哈哈。在翻白眼时,这只是“正确(tm)”的事情
猜你喜欢
  • 2019-09-14
  • 2021-12-01
  • 1970-01-01
  • 2013-03-09
  • 2010-09-26
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多