我正在寻找一种在Zend框架(1.1)中管理数据库连接的通用方法。
我们的ZF应用程序托管在amazon云中,我们使用他们的RDS解决方案。添加读取副本服务器很容易,但是我们希望在应用程序中添加对它的支持。我们正在寻找处理它的最佳和简单的解决方案。任何建议都很好。
我知道如何在Zend_Db_SelectZend_Db_Tables中切换数据库连接,但我正在寻找一个尽可能集中和自动的框架,因此我们不需要在每个查询/模型中设置从机支持。
我也读过mysql代理,但我不想在我们的应用程序中引入另一个软件层。

最佳答案

你真的在用ZF1.1吗?还是ZF 1.10/1.11?在后一种情况下,可以使用Zend_Application_Resource_Multidb设置不同的数据库资源。
如果需要自动切换(负载平衡),有很多方法。我不知道MySQL的LoadBalancers,但是通过编程,您可以在引导程序中将默认适配器随机切换到一个multidbs。然后应用程序为每个请求使用一个随机数据库(如果使用Zend_Db_Table::getDefaultAdapter()/Zend_Db_Table::getAdapter())
或者创建一个自己的代理类来管理它。有关您的环境和确切用例的更多信息可能会很有用。

10-05 20:11