使用MySqlrouter实现MYSQL读写分离
文章目录
一、MYSQL读写分离
1.1 读写分离概述:
鉴于数据量增多,单机的数据库支撑业务有压力的情况下,进行了读写分离的初步部署;
目前读写分离的中间件比较多,比如有美团的DBProxy、360的Altas、OneProxy、MyCat、阿里的DRDS/TDD等,就简单的进行读写分离,考虑到更新维护情况和暂不进行数据库分库分表操作的情况,本次选择了mysql兼容更好的mysqlrouter;
本次部署采用mysql官方的中间件mysqlrouter-8.0.21,(部署数据库版本为mysql8.0.21);
MySQL Router是一个介于应用层和DB层之间的开源的轻量级中间件,它能够将前端应用的请求分析转发给后端DB服务器处理,从而实现DB的负载均衡。
1.2 部署示例结构:
1.3 部署mysqlrouter
[root@c7108:/opt/src]# tar -xf mysql-router-8.0.21-el7-x86_64.tar.gz -C /data/tools/
[root@c7108:/opt/src]# cd /data/tools/
[root@c7108:/data/tools]# mv mysql-router-8.0.21-el7-x86_64 mysql-router
[root@c7108:/data/tools]# cat >> /etc/profile << EOF
export MYSQL_ROUTER_HOME=/data/tools/mysql-router
export PATH=$MYSQL_ROUTER_HOME/bin:$PATH
EOF
[root@c7108:/data/tools]# source /etc/profile
[root@c7108:/data/tools]# mysqlrouter --version
MySQL Router Ver 8.0.21 for Linux on x86_64 (MySQL Community - GPL)
配置文件
[root@c7108:/data/tools]# vim /etc/mysqlrouter.conf
[DEFAULT]
logging_folder = /data/tools/logs
config_folder = /etc/
runtime_folder =