MaxScale Master-Master模式集群部署可行性技术问询
MaxScale双活轮询部署方案可行性说明
这个部署方案是完全可行的,MaxScale原生支持多节点并行运行的模式,无论是前端加HAProxy做流量分发,还是应用直接随机连接多个MaxScale节点,都可以稳定运行。
核心可行性依据
MaxScale默认配置下属于无状态服务,每个节点会独立完成后端Galera Cluster的状态监控、读写分离路由逻辑,多个节点之间不需要做状态同步,互相之间没有依赖,并行运行不会产生冲突。
两种部署模式的注意事项
- 前端加HAProxy分发流量
- roundrobin、leastconn两种负载算法都可以正常使用,如果业务对连接稳定性要求较高,也可以选择
source哈希算法,保证同一客户端的请求固定落到同一台MaxScale节点,减少连接重建开销。 - 需要在HAProxy侧配置MaxScale节点的健康检查,直接探测MaxScale的数据库服务端口即可,节点异常时可以自动摘除,避免流量转发到故障节点。
- roundrobin、leastconn两种负载算法都可以正常使用,如果业务对连接稳定性要求较高,也可以选择
- 应用直接随机连接多台MaxScale
- 该模式也可正常运行,但需要在应用侧自行实现故障切换逻辑,比如连接10.0.0.1失败时自动 fallback 到10.0.0.2,避免单台MaxScale宕机时部分请求失败。
和原有Keepalived主从模式的对比
原有Keepalived主从模式同一时间只有单台MaxScale承接流量,双活轮询模式可以将流量分摊到多台MaxScale节点,资源利用率更高,只要后端Galera Cluster性能足够,没有功能层面的限制。
部署时的注意点
- 所有MaxScale节点的配置必须保持一致,包含读写分离规则、后端Galera节点监控配置、访问权限配置等,避免不同节点路由逻辑不一致导致异常。
- 不要启用需要跨节点同步状态的特殊配置(比如全局事务ID追踪、跨节点会话状态共享等),默认配置下无此类功能,无需额外调整。
- 如果开启了MaxScale的连接池功能,所有节点的连接池参数需要配置统一,避免后端Galera Cluster的连接数分布不均衡。
内容的提问来源于stack exchange,提问作者CrazyRabbit
相关产品推荐
相关产品推荐

