我已经在两个私有IP 192.168.2.51和192.168.2.52上运行了2个MariaDB 10.0 Galera集群节点。我将尝试使用MariaDB网站提供的MariaDB的JDBC Client(org.mariadb.jdbc.Driver)尝试连接到集群。
它适用于常规网址:“jdbc:mariadb://192.168.2.51:3306,192.168.2.52:3306 / dbname”。
但我想要实现的是MySQL JDBC驱动程序的可能性,其URL类似于:“jdbc:mysql://192.168.2.51,192.168.2.52/dbname?autoReconnect = true& autoReconnectForPools = true& failoverReadonly =假安培; roundRobinLoadBalance =真“
我比较了MariaDB(https://mariadb.com/kb/en/about-the-mariadb-java-client/)和MySQL(http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html)中声明的属性。对于MariaDB JDBC Client,它似乎没有处理loadbalance或autoReconnect的属性。
所以我的问题是: 是否有正确的建议方式通过MariaDB JDBC驱动程序(具有负载均衡和故障转移功能)连接到MariaDB Galera,或者我应该回退到MySQL的ConnectorJ以及ConnectorJ与MariaDB Galera集群的兼容性如何?
谢谢。
答案 0 :(得分:2)
MariaDB JDBC中没有负载均衡或故障转移功能。即使您使用的多端点功能也没有记录,并且是实验性的。 ConnectorJ负载均衡应该可以正常工作,因为对它来说,MariaDB Galera只是常规MySQL的实例。
答案 1 :(得分:1)
您只需使用failover
。
据我观察,mariadb连接器中的jdbc:mariadb:failover
等于mysql连接器中的jdbc:mysql:loadbalance
;
和mariadb中的jdbc:mariadb:sequential
等于mysql中的jdbc:mysql:failover
。
这有点令人困惑。
在Mariadb中,即使是“故障转移”一词,读/写负载实际上也分布在所有节点上。我更喜欢使用顺序的连接,以便始终将连接连接到一个节点,这在某些情况下更可靠,例如使用galera多主群集。
https://mariadb.com/kb/en/library/about-mariadb-connector-j/