Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
何时以及如何使用mysql ReplicationConnection和ReplicationDriver?_Mysql_Jdbc_Replication - Fatal编程技术网

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

何时以及如何使用mysql ReplicationConnection和ReplicationDriver?,mysql,jdbc,replication,Mysql,Jdbc,Replication,使用主从拓扑时,能否直接使用com.mysql.jdbc.ReplicationConnection和com.mysql.jdbc.ReplicationDriver将只读连接拆分到其中一个复制数据源 正如Connector/J的javadoc所述,ReplicationConnection是一个 打开两个连接的连接,一个连接到复制主机,以及 另一个连接到一个或多个从属,并决定在连接时使用master 不是只读的,并且在连接为只读时使用从属 因此,我只是想知道它是否真的像预期的那样工作,因为我们

使用主从拓扑时,能否直接使用
com.mysql.jdbc.ReplicationConnection
com.mysql.jdbc.ReplicationDriver
将只读连接拆分到其中一个复制数据源

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

打开两个连接的连接,一个连接到复制主机,以及 另一个连接到一个或多个从属,并决定在连接时使用master 不是只读的,并且在连接为只读时使用从属

因此,我只是想知道它是否真的像预期的那样工作,因为我们不能从主从拓扑中获益,因为主从拓扑释放了许多到主节点的只读连接的负担

当我查看源代码时,我发现到主控和从控的连接都是在构造函数中建立的,这意味着每个只读操作不仅会连接到从控,而且会连接到主控,没有任何通信,而且很短,这并不能减轻主人的负担


那么,这样使用
ReplicationConnection
正确吗?或者它只是在其他场景中使用?

为什么你说它不能减轻主人的负担?确实,它将进行连接,但当连接处于只读模式时,它不会对主机发出任何查询
connection.setReadOnly(true)

因此,如果您的应用程序将所有调用的连接置于只读模式或退出只读模式,那么它将在仍然执行所有写入操作的情况下解除所有这些读取的主控


您可以通过在两台机器上打开(ie查询日志)来确保它做了正确的事情,并查看每个查询的位置。

由于总是存在单个MySQL实例的连接限制,是否会发生主节点无法提供更多连接,而从节点可以,因为主节点处理连接的次数是每个从节点的n倍。(其中n等于从机的数量)。或者,正如您所说,如果我没有误解的话,是SQL执行消耗的资源(包括查询)而不是单个节点的套接字连接限制成为瓶颈,因此,我们需要部署更多副本以实现高可用性。您的看法是正确的,主服务器需要为每个客户端提供足够的连接,但最大连接数应在数千个范围内不会有问题。。。