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.rhkb.cn/news/411420.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS--合理使用动画

一、概述 动画是应用开发中必不可少的部分,它可以使应用程序更加生动和易于互动,一方面可以提升用户体验、增强视觉吸引力,另一方面可以引导用户操作、提高信息传达效率。应用程序中,页面层级间的转场、点击交互、手势操控都可以添…

ODOO17文档打印(输出)方案 -- ODOO17 document printing (output) scheme

根据使用场景不同,ODOO17支持以下几种文档打印(输出)方案: According to different usage scenarios, ODOO17 supports the following document printing (output) schemes: 1、QWEB ODOO原生打印功能(生成PDF文档) odoo使用的主…

【AI】:探索在图像领域的无限可能

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 图像识别与分类的飞跃图像生成与创造的艺术图像增强与修复的神奇图像搜索与理解的智能图像分析与挖掘的洞察图形生成技术1. 生成对抗网络(GANs)2. 卷积神经网络(CN…

多语言跨领域迁移学习的新框架:MAD-X

人工智能咨询培训老师叶梓 转载标明出处 多语言模型如mBERT和XLM-R通过零样本或少样本跨语言迁移极大地推动了低资源语言的NLP应用。但这些模型由于容量限制,对低资源语言和未见语言的迁移性能并不理想。为了解决这一问题,来自德国达姆施塔特工业大学、…

Stable Diffusion详解

文章目录 前言一、LDM原理二、模型结构三、模型训练与推理总结 前言 Stable Diffusion在图像生成方面取得了很大的成功,其核心原理是LDM(Latent Diffusion Models),在论文《High-Resolution Image Synthesis with Latent Diffusio…

【数据结构】优先级队列 — 堆

文章目录 前言1. 优先级队列1.1 概念1.2 特性 2. 堆2.1 概念2.2 存储方式 3. 堆的模拟实现3.1 堆的创建3.2 堆的插入3.3 堆的删除 4. PriorityQueue4.1 注意事项4.2 构造器介绍4.3 常用方法介绍 5. 经典题型6. 结语 前言 我们之前学习过队列,它是遵循先进先出原则的…

halcon 深度学习软件工具安装以及用法

安装halcon 20版本以上得 以为这个版本以上得有异常检测,分割,分类,目标检测,都有 一、下载软件 可以再官网下载,但是官网要注册账号 下载区域: MVTec Software 不用官方的账号 就下载安装包 链接:http…

day13JS-MoseEvent事件

1. MouseEvent的类别 mousedown :按下键mouseup :释放键click :左键单击dblclick :左键双击contextmenu :右键菜单mousemove :鼠标移动mouseover : 鼠标经过 。 可以做事件委托,子元素可以冒泡…

使用Blender进行3D建模—基础操作笔记

Blender 3D 建模🚀 在博0阶段,目前已经完成立创EDA的PCB绘制的基础学习,树莓派的系统安装远程控制能学习,加上我本硕阶段学习的单片机和深度学习人工智能算法的知识,这里打算补上一块比较重要的能力拼图,就…

Netty 学习笔记

Java 网络编程 早期的 Java API 只支持由本地系统套接字库提供的所谓的阻塞函数,下面的代码展示了一个使用传统 Java API 的服务器代码的普通示例 // 创建一个 ServerSocket 用以监听指定端口上的连接请求 ServerSocket serverSocket new ServerSocket(5000); //…

c++关于字符串的练习

提示并输入一个字符串&#xff0c;统计该字符串中字母个数、数字个数、空格个数、其他字符的个数 #include <iostream> #include<string> using namespace std;int main() {string s1;int letter0,digit0,space0,other0;cout<<"请输入一个字符串:"…

海康二次开发学习笔记5-二次开发小技巧

二次开发小技巧 1. VM安装目录 Samples内包含C#,QT,VC应用程序 Documetnations内包含C#和C语言的帮助文档 2. 错误码 private void button4_Click(object sender, EventArgs e){try{VmSolution.Load(textBox1.Text);listBox1.Items.Add("方案加载成功.");listBox1.…

质量技术AI提效专题分享-得物技术沙龙

活动介绍 本次“质量技术&AI提效专题分享”沙龙聚焦于质量技术和AI效率领域&#xff0c;将为您带来四个令人期待的演讲话题&#xff1a; 1、《智能化提效实践》 2、《仿真自动化在饿了么金融实践分享》 3、《得物精准测试提效应用》 4、《广告算法灰度拦截实践》 相信这些…

开源的工作流系统突出优点总结

当前&#xff0c;想要实现高效率的办公&#xff0c;可以一起来了解低代码技术平台、开源的工作流系统的相关特点和功能优势。作为较受职场喜爱的平台产品&#xff0c;低代码技术平台拥有可视化才做界面、灵活、好维护操作等多个优势特点&#xff0c;在推动企业流程化办公的过程…

读软件开发安全之道:概念、设计与实施12不受信任的输入

1. 不受信任的输入 1.1. 不受信任的输入可能是编写安全代码的开发人员最关心的问题 1.1.1. 最好将其理解为输入系统中的所有不受信任的输入 1.1.2. 来自受信任的代码的输入可以提供格式正确的数据 1.2. 不受信任的输入是指那些不受你控制&#xff0c;并且可能被篡改的数据&…

RASA使用长文记录以及一些bug整理

RASA 学习笔记整理 一 安装 在虚拟环境中安装&#xff0c;进入python3版本的环境 conda activate python3 ai04机器旧版本&#xff1a;rasa-nlu和rasa-core是分开安装的 最新版本&#xff1a;rasa 将二者做了合并 直接安装 pip3 install rasa 在安装到如下步骤时候会报…

github上传代码

一般要上传github代码有两种模式&#xff0c;一种是直接在repo中上传&#xff0c;一种是通过git来上传&#xff08;win和linux都可以&#xff09;&#xff0c;来学习一下。 我们去创建好一个repo后&#xff1a; 首先是直接上传&#xff08;不推荐&#xff09; 通过upload file…

graphRAG原理解析——基于微软graphRAG+Neo4j llm-graph-builder

知识图谱生成 llm-graph-builder&#xff08;以下简称 LGB&#xff09;也使用了最新的 graph RAG 的思路&#xff0c;使用知识图谱来加持RAG&#xff0c;提供更加准确和丰富的知识问答。知识图谱的生成上&#xff0c;利用大模型的泛化能力来自动生成和构建知识图谱&#xff0…

一个下载镜像非常快的网站--华为云

1、镜像的下载飞速 链接&#xff1a;mirrors.huaweicloud.com/ubuntu-releases/24.04/ 下载一个的ubuntu24.04的镜像文件&#xff0c;5.7G的大文件&#xff0c;不到1分钟就下完毕了&#xff0c; 比起阿里云下载的速度600K/S,这个速度是100多倍。 非常的神速&#xff0c;非常…

探索联邦学习:保护隐私的机器学习新范式

探索联邦学习&#xff1a;保护隐私的机器学习新范式 前言联邦学习简介联邦学习的原理联邦学习的应用场景联邦学习示例代码结语 前言 在数字化浪潮的推动下&#xff0c;我们步入了一个前所未有的数据驱动时代。海量的数据不仅为科学研究、商业决策和日常生活带来了革命性的变化&…