MySQL路由器的部署流程
- 解压安装包并调整目录结构
root@ubuntu06:/usr/local/mysql_install_package# tar -xvf mysql-router-8.3.0-linux-glibc2.28-x86_64.tar.xz
root@ubuntu06:/usr/local/mysql_install_package# mv mysql-router-8.3.0-linux-glibc2.28-x86_64 mysql-router8.3
root@ubuntu06:/usr/local/mysql_install_package# cd mysql-router8.3
- 建立服务所需目录
root@ubuntu06:/usr/local/mysql-router8.3# mkdir router_storage
root@ubuntu06:/usr/local/mysql-router8.3# cd router_storage
root@ubuntu06:/usr/local/mysql-router8.3/router_storage# mkdir data_dir log_files config_files runtime_files
路由配置文件定制
基于主从架构配置路由参数
[GLOBAL]
log_directory = /usr/local/mysql-router8.3/router_storage/log_files
extension_dir = /usr/local/mysql-router8.3/lib/mysqlrouter
configuration_dir = /usr/local/mysql-router8.3/router_storage/config_files
runtime_dir = /usr/local/mysql-router8.3/router_storage/runtime_files
data_dir = /usr/local/mysql-router8.3/router_storage/data_dir
[LOG_SETTINGS]
log_level = INFO
log_file = router.log
time_format = second
[WRITE_ROUTING]
listen_address = 0.0.0.0
service_port = 7001
selection_policy = primary-first
access_mode = read-write
target_servers = 192.168.152.112:8000,192.168.152.113:8000
[READ_ROUTING]
listen_address = 0.0.0.0
service_port = 7002
access_mode = read-only
replica_servers = 192.168.152.113:8000,192.168.152.112:8000
[HEARTBEAT]
check_interval = 60
系统服务配置
创建systemd管理单元
[Unit]
Name=MySQL Router Service
Requires=network-online.target
Requires=syslog.service
[Service]
Type=notify
RunAs=mysql
Group=mysql
StartCommand=/usr/local/mysql-router8.3/bin/mysqlrouter --config /usr/local/mysql-router8.3/router_storage/config_files/router.conf
FileDescriptorLimit=100000
RestartPolicy=on-abnormal
PrivateTmp=yes
[Install]
DefaultTarget=multi-user.target
更新系统服务配置
systemctl reload-daemon
初次启动时可能出现权限问题,需调整目录所有权
授权后服务正常启动
读写分流功能验证
- 写操作验证(7001端口)
- 读操作验证(7002端口)
注意:连接建立时进行负载均衡,后续请求保持固定节点
- 故障自动切换演示
部署建议
MySQL路由器作为轻量级中间件,不存储业务数据,建议与应用服务共同部署。官方推荐架构示意图:
相关文章
暂无评论...