5

Zend Framework の MultiDB リソース ( http://framework.zend.com/manual/1.10/en/zend.application.available-resources.html#zend.application.available-resources.multidb )を使用します。

私は、冗長性のために 3 つのエンドポイントを持つ新しい DB リソースを追加する任務を負っています。最初のエンドポイントへの接続が失敗した場合、あきらめる前に 2 番目のエンドポイントに接続し、必要に応じて 3 番目のエンドポイントに接続するように MultiDB を構成したいと考えています。

resource.multidb.resourcename.host[] を設定しようとしましたが、失敗しました。単一のエンドポイントのみを受け入れるようです。

フォールバックを構成する方法はありますか? または、Zend_Application_Resource_Multidb を拡張する必要がありますか?

4

1 に答える 1

0

正直なところ、データベース アプリケーションのソフトウェア側のフォールバックを試したことはありません (zend フレームワーク「自体」で本当に可能かどうかさえわかりません)。それには正当な理由があります。単純に、その場所が間違っているからです。

いくつかの障害があります。

  1. 複数のデータベース間でデータの永続性を維持するにはどうすればよいでしょうか?
  2. 1 つのデータベースがダウンした場合はどうなりますか?

MySQL を使用していると仮定すると、MySQL 自体のマスター - スレーブレプリケーションを確認することをお勧めします: 16.1.1. レプリケーションを設定する方法

これでも頭痛の種になる可能性があります (特に既存のデータを移行する必要がある場合)。私は現在、いくつかのプロジェクトに出くわした解決策に非常に満足しています。自分で冗長性を処理するのに苦労する代わりに、データベース/サーバー自体にタスクを渡すだけです!

これまでに遭遇した最も簡単な解決策は、データベースを (Web アプリケーション自体から独立した)フェイルオーバー vServer クラスターにセットアップすることです。

私の答えがあなたの質問とまったく一致しない場合は申し訳ありませんが、別のアプローチについて考えさせられる衝動になるかもしれません.

于 2013-03-15T08:40:58.880 に答える