我正在寻找一种实现故障转移的方法,并在我的Rails应用程序中对三个数据库进行了另外的负载平衡。如何在Rails中设置分布式数据库
下面的代码当前没有问题,但是如果db_1
关闭,那么我的应用程序就会死亡。
我想用db_1
作为主,另外两个db_2
和db_3
作为故障切换。
此外,我想负载平衡他们,但这是一个不太重要的要求。
的config/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