Поддержка ведомых устройств Zend Framework и mysql

Я ищу общий способ управления подключениями к базе данных в Zend Framework (1.1).

Наше приложение ZF размещено в облаке Amazon, и мы используем их решение RDS. Добавить серверы реплик чтения несложно, однако мы хотели бы добавить их поддержку в наше приложение. Мы ищем лучшее и простое решение для его обработки. Любые предложения были бы замечательными.

Я знаю, как переключаться между подключениями к базе данных в Zend_Db_Select и в Zend_Db_Tables, но я ищу более централизованный и максимально автоматический фреймворк, чтобы нам не нужно было настраивать поддержку слейва в каждом запросе/модели.

Я также читал о прокси-сервере mysql, но я не хочу вводить еще один программный слой в наше приложение.


person aporat    schedule 20.10.2011    source источник


Ответы (2)


Вы действительно используете ZF 1.1? Или ZF 1.10/1.11? В последнем случае вы можете использовать Zend_Application_Resource_Multidb для настройки различных ресурсов базы данных.

Если вам нужно автоматическое переключение (балансировка нагрузки), есть много способов. Я не знаю о LoadBalancers для MySQL, но программно вы можете случайным образом переключить адаптер по умолчанию при начальной загрузке на одну из мультибаз данных. Затем ваше приложение использует для каждого запроса случайную базу данных (если вы используете Zend_Db_Table::getDefaultAdapter() / Zend_Db_Table::getAdapter()).

Или вы создаете собственный прокси-класс, который управляет этим за вас. Может быть полезна дополнительная информация о вашей среде и конкретных вариантах использования.

person breiti    schedule 31.01.2012

Вы можете просто перезаписать соответствующие классы и решить (чтение или запись), в какую базу данных отправить запрос.

person dwalldorf    schedule 21.10.2011