Я рассматриваю способ достижения неудачной и дополнительной балансировки нагрузки по трем базам данных в приложении Rails.Как настроить распределенные базы данных в Rails
Следующий код в настоящее время работает без проблем, однако если db_1
не работает, мое приложение умирает.
Я хотел бы использовать db_1
как первичный, так и другой два db_2
и db_3
как отказ.
Кроме того, я хотел бы загрузить баланс, но это менее важное требование.
конфигурации/database.yml
db_1:
adapter: mysql2
reconnect: false
pool: 5
username: <username>
password: <password>
database: database_test
host: 101.101.101.1
db_2:
adapter: mysql2
reconnect: false
pool: 5
username: <username>
password: <password>
database: database_test
host: 101.101.101.2
db_3:
adapter: mysql2
reconnect: false
pool: 5
username: <username>
password: <password>
database: database_test
host: 101.101.101.3
приложение/модели/ext_databases.rb
class ExtDatabases < ActiveRecord::Base
self.abstract_class = true
establish_connection :db_1
end
приложение/модели/users.rb
class Users < ExtDatabases
Users.table_name = "ext_users"
end