我有一个多主从设置,有2个主设备和1个从设备。我想只在Slave上进行所有读取,并且loadbalanced(循环)写入。
有一个复制解决方案: http://dev.mysql.com/doc/connector-j/en/connector-j-master-slave-replication-connection.html
我正在使用标准 com.mysql.jdbc.Driver 作为连接对象。 连接String如下所示:
String URL = "jdbc:mysql:loadbalance://address=(protocol=tcp)(host=localhost)(port=3306)(type=master),address=(protocol=tcp)(host=localhost)(port=3307)(type=master),address=(protocol=tcp)(host=localhost)(port=3308)(type=slave)/test?"
+ "characterEncoding=UTF-8";
如果使用loadbalance解决方案,所有内容(读取和写入)都会分发。如果使用 jdbc:mysql:replication:,则写入总是转到第一个Master,并且Slave总是回答读取。
有没有办法配置JDBC以满足我的要求?我尽量避免有2个连接。
答案 0 :(得分:0)
我想这对于J / Connector来说是不可能的(实际上这很有意义)。
我将使用像MaxScale这样的代理解决方案,您可以在主/从和集群环境中使用它。
答案 1 :(得分:0)
要使其正常工作,将jdbc连接设置为只读是至关重要的。