9

我已经设置了 MariaDB 10.0 Galera 集群的 2 个节点,在 192.168.2.51 和 192.168.2.52 的私有 IP 上运行。我将尝试使用 MariaDB 网站提供的 MariaDB 的 JDBC 客户端 (org.mariadb.jdbc.Driver) 连接到集群。

它适用于常规 url,例如:“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=false&roundRobinLoadBalance=true”

我比较了 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 客户端,它似乎没有处理负载平衡或自动重新连接的属性。

所以我的问题是:是否有正确的推荐方法通过 MariaDB JDBC 驱动程序连接到 MariaDB Galera(具有负载平衡和故障转移功能),或者我应该回退到 MySQL 的 ConnectorJ 以及 ConnectorJ 与 MariaDB Galera 集群的兼容性如何?

谢谢你。

4

2 回答 2

2

MariaDB JDBC 中没有负载平衡或故障转移功能。即使您使用的多端点功能也没有记录,并且是实验性的。ConnectorJ 负载平衡应该可以正常工作,因为对它而言,MariaDB Galera 只是常规 MySQL 的实例。

于 2014-04-04T04:29:39.187 回答
2

你只需使用failover. 据我观察,jdbc:mariadb:failovermariadb 连接器等于jdbc:mysql:loadbalancemysql 连接器;并且jdbc:mariadb:sequential在 mariadb 中等于jdbc:mysql:failovermysql 中。

这有点令人困惑。

在 Mariadb 中,即使是故障转移这个词,读/写负载实际上也分布在所有节点上。我更喜欢使用顺序连接,这样连接总是到一个节点,这在某些情况下更可靠,例如使用 galera 多主集群。

https://mariadb.com/kb/en/library/about-mariadb-connector-j/

于 2019-04-03T02:00:31.093 回答