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

MySQL 中间件 MySQL-Router

目录

1 MySQL-Router 的介绍

2 MySQL-Router 负载均衡

2.1 设计目的:

2.2 HAProxy 与 Nginx 和 MySQL-Router 之间的区别

2.3 MySQL-Router 的优势

3 MySQL-Router 的获取

3 MySQL-Router 的使用

3.1 实验环境

3.2 MySQL-Router 部署

3.3 MySQL-Router 配置

3.4 测试实现的效果


1 MySQL-Router 的介绍

MySQL Router 是 MySQL 官方提供的一款中间件软件,它主要用于实现数据库的路由和负载均衡功能。MySQL Router 可以帮助开发者更轻松地管理复杂的数据库架构,尤其是在需要处理多个数据库实例或者需要实现读写分离等场景下非常有用。

2 MySQL-Router 负载均衡

2.1 设计目的:

  • MySQL Router 是专门为 MySQL 数据库设计的官方工具,主要用来处理 MySQL 数据库的负载均衡、读写分离等任务。
  • 它内置了对 MySQL 协议的理解和支持,因此在处理 MySQL 相关任务时更加高效和可靠。

2.2 HAProxy 与 Nginx 和 MySQL-Router 之间的区别

  • MySQL Router 更适合用于 MySQL 数据库相关的任务,提供了对 MySQL 协议的深入支持,简化了读写分离和故障转移的配置。
  • HAProxy 和 Nginx 则更适合于更广泛的负载均衡场景,不仅仅局限于数据库层面,可以用于多种类型的 TCP/HTTP 服务。

2.3 MySQL-Router 的优势

  • 专门针对 MySQL: MySQL Router 专为 MySQL 设计,能够更好地理解和处理 MySQL 协议,提供更好的兼容性和优化。
  • 读写分离: 支持自动的读写分离,可以根据查询类型将请求路由到正确的数据库实例。
  • 高可用性: 支持自动故障检测和恢复,能够快速地将流量重新路由到健康的实例。
  • 多协议支持: 除了 MySQL 协议外,还支持 RESTful API 和 WebSocket 协议,适合多种应用场景。

3 MySQL-Router 的获取

MySQL-Routericon-default.png?t=N7T8https://downloads.mysql.com/archives/router/

3 MySQL-Router 的使用

3.1 实验环境

虚拟机MySQL-RouterMySQL-01MySQL-02MySQL-03
IP地址192.168.239.50192.168.239.210192.168.239.220192.168.239.230
端口号  7001 | 7002330633063306

3.2 MySQL-Router 部署

开一台没有使用 过的虚拟机当代理服务器

[root@docker-rhel src]# ls
mysql-router-community-8.4.0-1.el7.x86_64.rpm
[root@docker-rhel src]# yum install mysql-router-community-8.4.0-1.el7.x86_64.rpm -y

3.3 MySQL-Router 配置

[root@docker-rhel src]# vim /etc/mysqlrouter/mysqlrouter.conf [routing:ro]
bind_address = 0.0.0.0
bind_port = 7001
destinations = 192.168.239.210:3306,192.168.239.220:3306,192.168.239.230:3306
routing_strategy = round-robin #轮循[routing:rw]
bind_address = 0.0.0.0
bind_port = 7002
destinations = 192.168.239.230:3306,192.168.239.220:3306,192.168.239.210:3306
routing_strategy = first-available  # 第一个链接的就会一直链接# routing:ro - 这里要说明他只是给配置人员看的只读,他不能限制实现只读或者读写功能
# bind_address = 0.0.0.0: 绑定到所有可用网络接口。
# bind_port = 7001: 监听端口为 7001。
# destinations = 192.168.239.210:3306,192.168.239.220:3306,192.168.239.230:3306: 指定了三个后端 MySQL 实例的地址和端口。
# routing_strategy = round-robin: 表明使用轮询策略来均衡读取请求。

重启MySQL-Router 服务 

[root@docker-rhel src]# systemctl restart mysqlrouter.service 

 查看端口是否开放

[root@docker-rhel src]# netstat -tunlpe | grep 7001
tcp        0      0 0.0.0.0:7001            0.0.0.0:*               LISTEN      987        61464      3776/mysqlrouter    
[root@docker-rhel src]# netstat -tunlpe | grep 7002
tcp        0      0 0.0.0.0:7002            0.0.0.0:*               LISTEN      987        58689      3776/mysqlrouter  

3.4 测试实现的效果

[root@mysql-3 ~]# mysql -ushuyan -pOpenlab123! -h 192.168.239.50 -P 7001 -e "SELECT @@HOSTNAME;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@HOSTNAME |
+------------+
| mysql-01   |
+------------+
[root@mysql-3 ~]# mysql -ushuyan -pOpenlab123! -h 192.168.239.50 -P 7001 -e "SELECT @@HOSTNAME;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@HOSTNAME |
+------------+
| mysql-02   |
+------------+
[root@mysql-3 ~]# mysql -ushuyan -pOpenlab123! -h 192.168.239.50 -P 7001 -e "SELECT @@HOSTNAME;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@HOSTNAME |
+------------+
| mysql-3    |
+------------+
[root@mysql-3 ~]# mysql -ushuyan -pOpenlab123! -h 192.168.239.50 -P 7001 -e "SELECT @@HOSTNAME;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@HOSTNAME |
+------------+
| mysql-01   |
+------------+
[root@mysql-3 ~]# mysql -ushuyan -pOpenlab123! -h 192.168.239.50 -P 7002 -e "SELECT @@HOSTNAME;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@HOSTNAME |
+------------+
| mysql-3    |
+------------+
[root@mysql-3 ~]# mysql -ushuyan -pOpenlab123! -h 192.168.239.50 -P 7002 -e "SELECT @@HOSTNAME;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@HOSTNAME |
+------------+
| mysql-3    |
+------------+

http://www.mrgr.cn/news/8115.html

相关文章:

  • 鸿蒙端云一体开发、鸿蒙云
  • Spark2.x 入门:从 RDD 转换到 DataFrame
  • Langchain编程中常见Python库讲解【2】
  • 计算机网络
  • python爬虫——入门
  • C++ 进制转换
  • 做空股指期货一手多少钱?
  • SSRF以及CSRF漏洞初步了解
  • python语言day9 正则表达式 和 xpath 解析html
  • 书生浦语大模型实战营:LMDeploy量化部署
  • centos7.9系统安装cloudpods并使用ceph存储(二)
  • 浅谈Kafka(三)
  • Prompt-Tuning 和 LoRA大模型微调方法区别
  • 【OpenGL】xcode+glfw画三角形
  • 《深入浅出WPF》读书笔记.6binding系统(中)
  • 信息学奥赛知识点(八)----计算机网络
  • web前端之选项卡集合、动态添加类名、动态移除类名、动态添加样式、激活、间距、节流、tabBar
  • 2161.根据给定数字划分数组
  • Outlook如何精确搜索邮件?
  • http应用层协议