【问题标题】:how to limit ActiveRecord database connections across multiple processes如何限制跨多个进程的 ActiveRecord 数据库连接
【发布时间】:2012-06-19 11:58:12
【问题描述】:

在将 Xeround 等 DBaaS(数据库即服务)与托管在 EC2 实例上的 Rails 应用程序一起使用时,如何限制与数据库的并发连接数(根据数据库服务计划限制)?有必要这样做吗?

我知道 ActiveRecord 连接池是每个进程并且是线程安全的,但是如果有多个进程(也跨多个不同的机器)怎么办?

【问题讨论】:

  • 构建代理,让应用通过它连接。这样您就可以控制连接。

标签: ruby-on-rails activerecord amazon-ec2 xeround


【解决方案1】:

遗憾的是,无法正确限制跨多个客户端(应用程序)的连接数。唯一的方法(几乎是静态的和经验性的)是将允许的最大连接数除以应用程序的数量,并将结果设置为每个应用程序的连接数限制。

【讨论】:

    【解决方案2】:

    使用Connection pool 基类来管理 Active Record 数据库连接。

    【讨论】:

    • 连接池只针对同一个进程。问题是指跨各种 EC2 实例的进程。
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2014-07-04
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多