You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Percona XtraDB Cluster:Java Spring Boot应用节点自动故障转移配置咨询

双节点Percona XtraDB Cluster + Spring Boot 自动故障转移配置指导

Percona XtraDB Cluster 侧配置

双节点集群存在quorum(法定人数)核心问题:当其中一个节点故障时,剩余节点因未达到半数以上集群节点数,会自动进入只读状态。需先解决该问题,再确保集群节点间能正常感知故障:

  • 调整集群quorum参数:在两个节点的my.cnf(或my.cnf.d/server.cnf)中添加以下配置,让剩余节点在单节点存活时仍可提供读写服务:

    wsrep_provider_options="pc.ignore_sb=true; pc.bootstrap=true"
    
    • pc.ignore_sb=true:忽略脑裂检测,允许单节点集群继续运行
    • pc.bootstrap=true:允许节点作为集群初始启动节点,故障恢复后可自动重建集群
  • 基础集群一致性配置:确保两个节点的核心集群参数一致:

    wsrep_cluster_name=pxc-cluster
    wsrep_node_address=节点自身IP
    wsrep_cluster_address=gcomm://node1-IP,node2-IP
    wsrep_sst_method=xtrabackup-v2
    wsrep_auto_increment_control=ON
    innodb_flush_log_at_trx_commit=1
    sync_binlog=1
    

    配置完成后重启两个节点的PXC服务。

Spring Boot 应用侧配置

应用需配置多节点连接、自动重连及故障转移逻辑,确保节点故障时无缝切换:

1. JDBC URL 多节点配置

将JDBC URL改为包含两个PXC节点的地址,用逗号分隔,并添加故障转移相关参数:

spring.datasource.url=jdbc:mysql://node1-IP:3306,node2-IP:3306/your-db-name?useSSL=false&allowPublicKeyRetrieval=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=10&initialTimeout=2

参数说明:

  • autoReconnect=true:连接失效时自动尝试重连
  • failOverReadOnly=false:故障转移到备用节点后,允许执行写操作(默认只读)
  • maxReconnects=10:最大重连次数,避免无限重试
  • initialTimeout=2:每次重连的间隔时间(秒)

2. 连接池参数优化(以默认HikariCP为例)

调整连接池参数,加快故障节点的检测与切换:

spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.validation-timeout=5000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.idle-timeout=600000
  • connection-test-query=SELECT 1:定期验证连接有效性,MySQL 8.0+可省略(HikariCP会用原生检测)
  • connection-timeout=30000:缩短连接超时时间,快速感知节点不可用

3. 事务容错配置

添加事务相关配置,确保故障切换时事务能正确处理:

spring.transaction.rollback-on-commit-failure=true

补充方案:使用中间代理层(可选)

若需更可靠的负载均衡与故障转移,可引入HAProxy或ProxySQL作为数据库代理:

  • 应用仅连接代理地址,由代理负责检测PXC节点状态,自动路由到可用节点
  • 代理层可配置节点健康检查(如执行SELECT 1),实时剔除故障节点

内容的提问来源于stack exchange,提问作者Muhammad Umar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:35:27