gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 06:48:52 27 4
gpt4 key购买 nike

我正在开发中使用 Rails 4.0.2 测试这个很棒的 gem Octopus。

我创建了一个 Slave 数据库并配置了 octopus 如下(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,但是如果我的 Slave 服务器关闭,我希望它重定向到 Master 数据库并获取内容,但经过一段时间尝试后,它会抛出错误:

Can't connect to MySQL server on '192.168.1.12' (113)

如果从服务器关闭,我该怎么做才能让 Octopus 寻找我的主数据库?

提前致谢!

最佳答案

正如我在 this blog post 中读到的那样关闭电源或无响应的从站可能会导致应用程序失败,因为 Octopus 的默认行为是将所有数据写入主站并从从站读取所有数据(因为写入主站的数据会复制到所有连接的从站)。如 Octopus wiki, "Multiple slaves" section 所述多从属环境中的读取是使用循环法完成的,因此默认情况下它始终从从属检索数据。

也摘自上述博客:作为后备机制,如果没有任何从节点可用或数据不可用,您应该直接从主节点读取数据(使用 .using(:master))尚未完全复制到奴隶。它也可能是缓存更改/结果应用程序的选项,以防止从数据库节点重复读取。

关于mysql - Rails Octopus Gem - 从站关闭时的主从复制连接行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20503612/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com