Rails Octopus Gem – 从站关闭时的主从复制连接行为

我正在开发Rails 4.0.2测试这个伟大的gem八达通。

我创建了一个Slave db并配置章鱼如下(config> shards.yml)

octopus: environments: - development replicated: true fully_replicated: true verify_connection: true development: slave1: host: 192.168.1.12 adapter: mysql2 username: slave_reader password: my_password database: my_server_development reconnect: true 

它工作得非常好,从Slave读取并写入Master,但是如果My Slave服务器关闭,我希望它重定向到Master db并获取内容,但经过一段时间的尝试后,它会抛出错误:

无法连接到’192.168.1.12’上的MySQL服务器(113)

如果Slave服务器关闭,我该怎么做才能使章鱼查找我的Master数据库?

提前致谢!

正如我在这篇博文中所读到的那样,掉电或无响应的从站可能会导致应用程序失败,因为Octopus的默认行为是将所有数据写入主服务器并从Slaves读取所有数据(因为写入主服务器的数据不会复制到所有数据)连接的奴隶)。 正如八达通维基上所述,在多个从属环境中读取的“多个从属”部分是使用循环法完成的,因此它始终默认从从属设备中检索数据。

也可以从上面提到的博客中获取:作为回退机制,如果没有Slave节点可用或数据尚未完全复制到从属, .using(:master)直接从Master中读取数据(使用.using(:master) )。 它也可以是应用程序缓存更改/结果以防止从数据库节点重复读取的选项。