マスター/スレーブ MySQL セットアップがあり、一部の読み取りをスレーブに分割したいと考えていました。
基本的に、次のように設定します。
- すべての書き込みはマスターを使用して行われます
- 書き込み直後にアクセスする必要がある読み取りでは、マスターが使用されます。
- 他のすべての読み取りはスレーブを優先します
- スレーブがダウンしている場合、すべての読み取りでマスターを使用する必要があります
現在、Zend_Db_Adapter_Pdo_Mysql を拡張するカスタム DB_Adapter があります。私が考えていたのは、読み取り専用の資格情報セットを使用してスレーブに認証する config.ini ファイルに別の変数を設定し、ブートストラップで 2 番目の DB_Adapter をインスタンス化することでした。Zend_DB::factory($config->slaveDatabase);
Zend_Application_Resource_Multidb にも出会いました。変数の 2 番目のセットを作成するだけでなく、これに Multidb リソースを使用する利点はありますか?
また、スレーブがダウンしている場合にそれを使用する読み取りが代わりにマスターを使用するようにフェイルオーバーを設定する方法はありますか?