如何为mariadb连接器配置jdbc后备

时间:2019-04-02 04:25:36

标签: mysql jdbc

我希望我的应用程序始终尽力连接到galera多主数据库集群的第一个节点

我的应用程序正在使用mariadb jdbc连接器连接到数据库。由于galera的已知限制,我经常会发生冲突。一种解决方案是强制应用程序仅连接到一个节点进行写入。 根据mariadb连接器文档here,我可以使用sequentail模式,以便连接器按顺序尝试主机。但是sequential的问题在于它不会回退,因此我仍然不能保证所有应用程序都将连接到同一数据库节点。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

mariadb知识页面上的文档不太清楚。

经过一些测试,这是我对Mariadb连接器的发现:

  1. 基本故障转移 如果未指定故障转移模式,则使用基本故障转移。(例如jdbc:mariadb://host1,host2)在这种模式下,JDBC驱动程序将尽最大努力连接到host1,直到其不可用为止。 。故障转移发生后,如果host1返回,它将尝试回退到host1并断开其他主机的连接。

  2. 顺序模式 此模式与基本故障转移几乎相同,不同之处在于JDBC驱动程序会粘贴到第二个节点,即使返回也不会回退到第一个节点

  3. 故障转移 我的理解是,Mariadb JDBC连接器中的jdbc:mariadb:failover与MySQL JDBC连接器中的jdbc:mysql:loadbalance等效。除非您指定(type=slave),否则连接器将以读写模式连接到所有节点。

  4. 复制 使用jdbc:mariadb:replication://host1,host2,host3,JDBC驱动程序将以读写模式连接到host1,所有其他节点都将以读取模式