gpt4 book ai didi

mysql - 何时以及如何使用 mysql ReplicationConnection 和 ReplicationDriver?

转载 作者:行者123 更新时间:2023-11-30 00:59:21 26 4
gpt4 key购买 nike

可以直接使用com.mysql.jdbc.ReplicationConnectioncom.mysql.jdbc.ReplicationDriver来分割与复制数据源之一的只读连接当使用主从拓扑时?

正如 Connector/J 的 javadoc 所说,ReplicationConnection 是一个

Connection that opens two connections, one to a replication master, and another to one or more slaves, and decides to use master when the connection is not read-only, and use slave(s) when the connection is read-only.

所以,我只是想知道它是否真的按预期工作,因为我们无法从主从拓扑中受益,该拓扑释放了与主节点的许多只读连接的负担。

当我查看源代码时,我发现在构造函数中都已经建立了与master和slave的连接,这意味着每个只读操作不仅会连接到slave,还会连接与master没有任何沟通,总之,并没有减轻master的负担。

那么,以这种方式使用ReplicationConnection是否正确?或者也许它只是用于其他场景?

最佳答案

为什么说它没有减轻主人的负担呢?确实,它会建立连接,但当连接处于只读模式 Connection.setReadOnly(true) 时,它不会对主服务器发出任何查询。

因此,如果您的应用程序将所有调用的连接设置为只读模式或退出只读模式,那么它实际上会减轻所有读取操作的主机,同时仍然执行所有写入操作。

您可以通过打开general log来确保它做正确的事情。 (即查询日志)在两台机器上查看每个查询的去向。

关于mysql - 何时以及如何使用 mysql ReplicationConnection 和 ReplicationDriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20278906/

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