高可用架构 怎么实现数据库读写分离高可用

老萱酱_9034

老萱酱_9034

2026-09-16

189人浏览

原创

数据库读写分离与高可用需通过主从复制(推荐半同步+row格式+read_only)、proxysql智能路由(按sql类型分发至hostgroup 10/20)及orchestrator+keepalived实现自动故障切换与vip漂移,并辅以应用层hint、降级和监控兜底。

高可用架构 怎么实现数据库读写分离高可用

数据库读写分离与高可用不是两个独立目标,而是通过主从复制 + 智能路由 + 健康感知三位一体实现的。核心在于:写操作必须稳定落主库,读请求要能自动流向健康从库,且主库故障时系统仍能持续提供只读服务甚至自动升主。

主从复制是基础,必须选对同步模式

没有可靠的数据同步,读写分离就是空中楼阁。推荐采用半同步复制(semisync),它在性能和一致性之间取得平衡:

  • 主库提交事务前,至少等待一个从库写入 relay log 并返回 ACK
  • 超时时间建议设为 500ms,避免长阻塞影响写入吞吐
  • binlog_format 必须设为 ROW,防止语句级复制引发数据不一致
  • 从库务必配置 read_only=ON,防止误写导致主从错位

ProxySQL 是最实用的中间件方案

它不依赖应用改造,用规则引擎即可透明实现读写分离与高可用切换:

Debuild
Debuild

Debuild是一款AI开发辅助工具,低代码快速开发网页应用。

下载
  • 通过 mysql_servers 表定义 hostgroup:10 为主库组,20 为从库组
  • 在 mysql_query_rules 中设置精准路由规则:
    ^SELECT.*FOR UPDATE → hostgroup 10(强一致性读写)
    ^SELECT → hostgroup 20(普通读)
    ^(INSERT|UPDATE|DELETE) → hostgroup 10(所有写)
  • Monitoring 模块每 3 秒检查后端节点状态,延迟超阈值或连接失败自动下线
  • 支持权重分配,例如让新扩容的从库承载 60% 读流量,老节点承担 40%

高可用闭环:自动故障检测 + 主从切换

仅靠 ProxySQL 还不够,需搭配拓扑感知组件形成闭环:

  • 用 Orchestrator 或 MHA 监控主库心跳,故障 10 秒内触发自动切换
  • 切换完成后,Orchestrator 更新 ProxySQL 的 mysql_servers 配置(如把原从库提升为主,并重标 hostgroup)
  • 配合 Keepalived 提供虚拟 IP(VIP),确保应用连接地址不变
  • 切换期间 ProxySQL 可开启 fast-forward 模式,将部分只读请求临时路由到新主库,减少服务中断

应用层兜底策略不可少

中间件再稳也存在极小概率失效,应用需具备基本容错能力:

  • 读操作默认走从库,但对强一致性要求场景(如订单支付结果页),显式加 hint 或使用 ApplicationIntent=ReadOnly(SQL Server)/ /*+ READ_FROM_SLAVE */(MySQL 注释提示)
  • 写操作失败时,捕获 “Lost connection” 或 “Host is down” 类错误,触发降级逻辑(如缓存兜底、异步重试)
  • 监控关键指标:从库延迟(Seconds_Behind_Master)、ProxySQL query rule 匹配率、hostgroup 流量分布偏差

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

高可用架构

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

840

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2412

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

709

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2176

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

3992

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.2万人学习