Я расширил класс базы данных mysqli, чтобы сделать обработку запросов более эффективной, и пока он работает хорошо. Тем не менее, иногда мой сервер базы данных выходит из строя, а затем в основном ломается много частей.
Поэтому я хочу адаптировать свой класс базы данных для подключения ко второму отказоустойчивому серверу, не меняя остальную часть моего кода PHP.
Это действительно плохо, если я делаю это так:
protected $fallback = 'mysql_fallback';
public function __construct($host = "mysql", $user = "xxx", $pass = "xxx", $db = "xxx", $port=null, $socket=null) {
@parent::__construct($host, $user, $pass, $db, $port, $socket);
if ($this->connect_errno) {
@parent::__construct($this->fallback, $user, $pass, $db, $port, $socket);
}
}
Во всех моих сценариях у меня есть следующее:
$db = new myDbase();`
if (!$db->connect_errno)`{
И я на самом деле не хочу менять все сценарии, в которых у меня есть этот код, и просто настроить репликацию master / master на mysql и идти по этому пути.
Есть ли другой способ быстро настроить отказоустойчивость, не корректируя слишком много кода и при этом сохраняя некоторую прозрачность?
Задача ещё не решена.
Других решений пока нет …