В Zend Framework, использующем MultiDB Resource, как я могу настроить откат базы данных? - PullRequest
5 голосов
/ 07 декабря 2011

Мы используем ресурс MultiDB Zend Framework (http://framework.zend.com/manual/1.10/en/zend.application.available-resources.html#zend.application.available-resources.multidb)

Мне было поручено добавить новый ресурс БД, который имеет три конечных точки для резервирования. Я хотел бы настроить MultiDB, чтобы в случае сбоя подключения к первой конечной точке она подключалась ко второй и, при необходимости, к третьей конечной точке, прежде чем отказаться.

Я попытался установить resource.multidb.resourcename.host [], но это не удалось. Похоже, он примет только одну конечную точку.

Есть ли способ настроить запасной вариант? Или мне нужно расширить Zend_Application_Resource_Multidb?

1 Ответ

0 голосов
/ 15 марта 2013

Если честно, я никогда не пробовал на стороне программного обеспечения (даже не уверен, возможно ли это на самом деле с Zend Framework "для себя") откат для приложений баз данных. И для этого есть веская причина: это просто неподходящее место!

Есть несколько камней преткновения:

  1. Как вам удается сохранять постоянство данных в нескольких базах данных?
  2. Что произойдет, если одна база данных выйдет из строя?

Предполагается, что вы используете MySQL: Возможно, вы захотите взглянуть на master - slave репликацию самого MySQL: 16.1.1. Как настроить репликацию

Даже это может привести к головным болям (особенно если вам нужно перенести существующие данные). В настоящее время я вполне доволен решением, с которым столкнулся несколько проектов назад: Вместо того, чтобы справляться с избыточностью самостоятельно, просто передайте задачу в свою базу данных / разорвите саму себя!

Самое простое решение, с которым я сталкивался до сих пор, - это настроить вашу базу данных на (от вашего веб-приложения, независимого) отказоустойчивый кластер vServer .

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

...