何时以及如何使用mysql Replication Connection和ReplicationDriver?

时间:2013-11-29 05:23:39

标签: mysql jdbc replication

使用主从拓扑时,可以直接使用com.mysql.jdbc.ReplicationConnectioncom.mysql.jdbc.ReplicationDriver将只读连接拆分为其中一个复制数据源吗?

由于Connector / J的javadoc状态,ReplicationConnection

  

连接打开两个连接,一个连接到复制主机,和   另一个到一个或多个从站,并决定在连接时使用master   不是只读的,当连接是只读时使用slave。

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

当我查看源代码时,我发现与主服务器和从服务器的连接都已在构造函数中建立,这意味着每个只读操作不仅会连接到从服务器,还会连接对没有任何沟通的主人来说,并且简短,它不会释放主人的负担。

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

1 个答案:

答案 0 :(得分:0)

为什么你说它不会释放主人的负担?确实,它会进行连接,但在连接处于只读模式Connection.setReadOnly(true)时,它不会对主服务器发出任何查询。

因此,如果您的应用程序将您的连接进入和退出只读模式以进行所有调用,它将面对所有这些读取的主机,同时仍在那里执行所有写操作。

您可以通过打开两台计算机上的general log(即查询日志)来确保它做对了,并查看每个查询的位置。