Обработка MySQL Failover(переключение роли master/slave) с помощью activerecord в приложении rails
Я новичок в Rails, и я создал приложение, соединяющееся с MySQL, используя activerecord. Я настроил чтение реплики master
узел. Проблема в том, когда мой slave
становится master
Я получаю следующую ошибку в приложении:
MySQL server is running with the --read-only option so it cannot execute this statement
что я думаю, это приемлемо.
Но мое приложение всегда терпит неудачу и не восстанавливается, пока я не перезапущу приложение. Есть ли какая-либо конфигурация acitverecord или свойство соединения MySQL, которое я могу использовать для восстановления из этого сценария?
Я использую следующий конфиг в моем database.yml
,
adapter: mysql2
encoding: utf8
url: <'DATABASE_URL'>
pool: 10
database: <'DATABASE_NAME'>
username: <'DATABASE_USER'>
password: <'DATABASE_PASS'>
reconnect: true
Есть ли какая-либо конфигурация, которую я могу добавить для обработки аварийного переключения? Любое предложение, чтобы справиться со сценарием?
Заранее спасибо.
1 ответ
Я исправил проблему после этого блога. Поместите это здесь для справки, чтобы любой, кто сталкивается с проблемой, мог использовать это.
Согласно блогу, вы переопределите ActiveRecord::ConnectionAdapters::ConnectionManagement
Адаптер и напишите свою собственную обработку соединения в случае ошибок.