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

如何在JDBC URL中正确配置使用Galera Load Balancer?

Galera集群JDBC负载均衡允许状态配置解答

你将galeraAllowedState配置为4,2在技术层面是可行的,但需要结合你的业务实际场景评估风险后再落地使用,具体说明如下:

状态基础说明

Galera集群节点的两个目标状态的核心特征:

  • 状态4(Synced):节点已经和集群完成全量同步,可正常处理读写请求,是官方推荐的唯一允许接入的状态,无额外性能、一致性风险
  • 状态2(Donor/Desynced):节点正在作为捐赠者,为新加入/需要数据恢复的节点传输同步数据,此时节点会被标记为非同步状态,默认不参与集群流控,虽然允许连接处理请求,但IO、CPU资源占用会明显升高,请求延迟会有大幅波动

适用场景

如果你的业务符合以下特征,可以保留4,2的配置:

  • 集群规模较小,节点间同步的数据量通常不大,Donor状态的持续时间很短
  • 业务对请求延迟的容忍度较高,或者上层已经配置了完善的超时重试、故障转移机制,可兜底短时间的请求异常

潜在风险

如果是核心业务场景,不建议添加状态2到允许列表,核心风险点如下:

  • 当Donor节点需要传输大量数据(比如新节点全量同步)时,节点资源会被同步任务占满,可能导致正常读写请求超时甚至卡住
  • 极端情况下如果Donor节点在同步过程中异常离线,可能会引发已提交请求的一致性问题,该情况概率低但对核心业务影响大

额外提示

你当前贴出的JDBC URL存在小笔误,loadbalance后缺少冒号,修正后的正确格式为:

jdbc:mariadb:loadbalance://10.0.0.4:3306,10.0.0.5:3306/mydb?galeraAllowedState=4,2

如果确实需要利用Donor节点的资源,建议额外添加loadBalanceBlacklistTimeout参数,调低异常节点的拉黑阈值,一旦Donor节点出现响应超时可以快速从可用列表中剔除,降低对业务的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:36:03