当前位置: 首页 > news >正文

MySQL Router

✅ 一、MySQL Router 到底干什么?

一句话:它就是个“交通警察”,站在应用程序和一堆 MySQL 服务器之间,专门指挥连接该往哪儿走。

  • 写操作 → 送到主库

  • 读操作 → 平均地送到各个从库(负载均衡)

  • 主库挂了 → 自动把写流量切到新主库,程序不用改代码、不用重启


✅ 二、为什么要用它?

没有 Router有 Router
程序直连 MySQL,主库换了 IP 就得改配置程序只连 Router,Router 负责找主库
读写都打到主库,主库压力大读写分离,主库轻松,从库也干活
主库挂了业务中断Router 自动切流,业务几乎无感知

✅ 三、怎么部署?(一步一步来)

1️⃣ 准备机器
  • MySQL 实例:3 台(172.25.254.10 / 20 / 30)

  • Router 节点:单独 1 台(172.25.254.40)

2️⃣ 安装 Router(在 40 这台)
rpm -ivh mysql-router-community-8.4.0-1.el7.x86_64.rpm
3️⃣ 配置文件

编辑 /etc/mysqlrouter/mysqlrouter.conf

[routing:ro]               # 只读端口
bind_address = 0.0.0.0
bind_port = 7001           # 应用连 7001 就是读请求
destinations = 192.168.65.174:3306,192.168.65.173:3306,192.168.65.172:3306
routing_strategy = round-robin   # 轮询分发[routing:rw]               # 读写端口
bind_address = 0.0.0.0
bind_port = 7002           # 应用连 7002 就是写请求
destinations = 192.168.65.172:3306,192.168.65.173:3306,192.168.65.174:3306
routing_strategy = first-available   # 谁活着就用谁

4️⃣ 启动 Router
systemctl start mysqlrouter.service

✅ 四、测试效果

① 在 MySQL 主库上建用户
CREATE USER 'root'@'%' IDENTIFIED BY 'lee';
GRANT ALL ON root *.* TO 'lee'@'%';
② 从任意客户端连 Router

# 读请求(会轮询到 174/173/172 三台)
mysql -uroot -plee -h 192.168.65.175 -P 7001# 写请求(只会落到 172,除非 172 挂了才切到 173)
mysql -ulee -plee -h 192.168.65.175 -P 7002

③ 实时验证

在 172/173/174上开 watch -n1 lsof -i :3306 就能看到连接被轮流或优先地打到不同机器。

 


✅ 五、注意坑

说明
Router 不会限制 SQL 类型你往 7001 写也能成功,只是通常约定 7001 只读
Router 不解析 SQL只做“连接级”路由,性能高但功能简单
主从复制必须健康如果从库延迟大,读可能读到旧数据

✅ 一句话总结

MySQL Router = 轻量级、官方出品、免费、读写分离 + 故障转移
适合不想改代码、又想提升 MySQL 可用性和性能的场景。

http://www.lryc.cn/news/610305.html

相关文章:

  • Elasticsearch Ingest Pipeline 实现示例
  • C 语言枚举、typedef 与预处理详解
  • C语言的数组与字符串
  • AI产品经理面试宝典第61天:AI产品体验、数据安全与架构实战解析
  • 倒排索引:Elasticsearch 搜索背后的底层原理
  • 无公网环境下在centos7.9上使用kk工具部署k8s平台(amd64架构)
  • 数字信号处理_编程实例1
  • 【前端】JavaScript基础知识及基本应用
  • C++ STL list容器详解:从基础使用到高级特性
  • AI绘图-Stable Diffusion-WebUI的基本用法
  • SwiftUI ios开发中的 MVVM 架构深度解析与最佳实践
  • 深度学习零基础入门(4)-卷积神经网络架构
  • (JAVA)自建应用调用企业微信API接口,设置企业可信IP
  • 流量见顶时代,知识付费 IP 的破局逻辑
  • 汇川PLC通过ModbusTCP转Profinet网关连接西门子PLC配置案例
  • 飞算 JavaAI 实战:从代码生成到架构优化的全场景应用指南
  • 机试备考笔记 4/31
  • springboot博客实战笔记01
  • 登Nature子刊,基于基因测序和机器学习的废水流行病学评估,病毒检出时间最高提前4周
  • 机器学习(11):岭回归Ridge
  • 服务器的Mysql 集群技术
  • 经典设计模式
  • YOLO11涨点优化:原创自研DSAM注意力!基于BiLevelRoutingAttention的颠覆性升级
  • 06 基于sklearn的机械学习-欠拟合、过拟合、正则化、逻辑回归
  • Ethereum: 深度解析Web3世界的合规之门, ERC-1400证券型代币标准
  • ISCC认证:可持续生产的新标杆。ISCC如何更快认证
  • 线程互斥锁:守护临界区的关键
  • 服务器数据安全:利用阿里云OSS/腾讯云COS实现网站数据自动备份
  • 2.5 DICOM 传输语法(Transfer Syntaxes)
  • 【Canvas与文字】生存与生活