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

红帽7—Mysql路由部署

MySQL Router 是一个对应用程序透明的InnoDB Cluster连接路由服务,提供负载均衡、应用连接故障转移和客户端路 由。

利用路由器的连接路由特性,用户可以编写应用程序来连接到路由器,并令路由器使用相应的路由策略 来处理连接,使其连接到正确的MySQL数据库服务器

准备工作

本实验以虚拟机Linux-7作为测试,在官网上下载软件包

准备三台虚拟机172.25.254.10,172.25.254.20和172.25.254.30各自安装数据库

轮询路由策略

“routing_strategy = round-robin” 表示路由策略为 “轮询”。

轮询策略是一种在多个资源或目标之间平均分配负载的方法。当有多个可选的路由、服务器或处理单元时,系统按照一定的顺序依次选择每个选项,以实现较为均衡的资源利用。

采用轮询策略时,第一个请求会被发送到第一个服务器,第二个请求被发送到第二个服务器,以此类推。当到达最后一个服务器后,下一个请求又会回到第一个服务器,形成一个循环。

策略的优点:

  1. 负载均衡:可以较为平均地将工作负载分配到各个资源上,避免某些资源过度负载而其他资源闲置的情况。
  2. 简单易实现:不需要复杂的算法和状态管理,易于理解和实现。

策略的缺点:

  1. 不能限制数据库的读写和访问分流
  2. 无法动态调整:如果某些资源在运行过程中出现故障或性能下降,轮询策略可能无法及时做出调整,导致请求分配不合理。

部署

172.25.254.10

主机从数据库官网上安装软件

[root@nginx ~]# rpm -ivh mysql-router-community-8.4.0-1.el7.x86_64.rpm

172.25.254.10主机上模拟mysql不存在将172.25.254.10主机的流量发送到172.25.254.20和172.25.254.30主机上

配置轮询路由策略

[root@nginx ~]# vim /etc/mysqlrouter/mysqlrouter.conf

[routing:ro]   #名称路由可读
bind_address = 0.0.0.0 #监控端口为当前主机端口
bind_port = 7001 #通过端口7001访问数据库
destinations=172.25.254.10:3306,172.25.254.20:3306,172.25.254.30:3306#访问主机的IP地址及端口
routing_strategy = round-robin#表示路由策略为轮询策略

启动mysql-router

[root@nginx ~]# systemctl start mysqlrouter.service

查看端口是否开启

[root@nginx ~]# netstat -antlupe |grep 7001

172.25.254.20

创建远程连接访问用户

mysql> create user root@'%' identified by 'lee';

mysql> grant all ON . to root@'%';

查询当前数据库服务器的唯一标识符为20

mysql> SELECT @@server_id;

172.25.254.30

创建远程连接访问用户

mysql> create user root@'%' identified by 'lee';

mysql> grant all ON . to root@'%';

查询当前数据库服务器的唯一标识符为30

mysql> SELECT @@server_id;

测试

172.25.254.10

在172.25.254.10主机上远程连接

[root@nginx ~]# mysql -uroot -plee -h172.25.254.10 -P 7001

查询当前数据库服务器的唯一标识符

mysql> SELECT @@server_id;

唯一标识符显示为30,说明172.25.254.10远程连接到172.25.254.30主机上。

\q退出mysql后再重新登录

再查询当前数据库服务器的唯一标识符

mysql> SELECT @@server_id;

唯一标识符显示为20,说明172.25.254.10远程连接到172.25.254.20主机上。

实现了路由轮询策略,注意mysql轮询策略不能限制数据库的读写和访问分流

优先使用路由策略

“routing_strategy = first-available” 表示路由策略为 “优先使用第一个可用的”。

这种路由策略通常在多个路径或资源中进行选择时使用。当有多个可选的路由或处理方式时,系统会优先选择第一个被确定为可用的选项。

如果采用 “first-available” 策略,网络设备会首先尝试第一个路径,如果该路径可用,则使用该路径进行数据传输;如果第一个路径不可用,则继续检查下一个路径,直到找到一个可用的路径。

“first-available” 路由策略的优点是简单直接,可以快速找到一个可用的选项。然而,它也可能存在一些缺点,比如可能没有充分考虑各个选项的性能、负载等因素,可能导致某些情况下不是最优的选择。

部署

配置轮询路由策略

172.25.254.10

[root@nginx ~]# vim /etc/mysqlrouter/mysqlrouter.conf

[routing:rw]
bind_address = 0.0.0.0
bind_port = 7002
destinations = 172.25.254.20:3306,172.25.254.30:3306
routing_strategy = first-available

启动mysql-router

[root@nginx ~]# systemctl start mysqlrouter.service

测试

172.25.254.10

在172.25.254.10主机上远程连接

[root@nginx ~]# mysql -uroot -plee -h172.25.254.10 -P 7002

查询当前数据库服务器的唯一标识符

mysql> SELECT @@server_id;

唯一标识符显示为20,说明172.25.254.10远程连接到172.25.254.20主机上。

\q退出mysql后再重新登录

再查询当前数据库服务器的唯一标识符

mysql> SELECT @@server_id;

唯一标识符显示依然为20,说明系统会优先选择第一个(172.25.254.20)被确定为可用的选项后,再次退出不会切换到172.25.254.30主机上,当172.25.254.20主机发生故障时会切换至172.25.254.30主机上。

相关文章:

红帽7—Mysql路由部署

MySQL Router 是一个对应用程序透明的InnoDB Cluster连接路由服务,提供负载均衡、应用连接故障转移和客户端路 由。 利用路由器的连接路由特性,用户可以编写应用程序来连接到路由器,并令路由器使用相应的路由策略 来处理连接,使其…...

LLM4Rec最新工作: 字节发布用于序列推荐的分层大模型HLLM

前几个月 Meta HSTU 点燃各大厂商对 LLM4Rec 的热情,一时间,探索推荐领域的 Scaling Law、实现推荐的 ChatGPT 时刻、取代传统推荐模型等一系列话题让人兴奋,然而理想有多丰满,现实就有多骨感,尚未有业界公开真正复刻 …...

怎么高效对接SaaS平台数据?

SaaS平台数据对接是指将一个或多个SaaS平台中的数据集成到其他应用或平台中的过程。在当前的数字化时代,企业越来越倾向于使用SaaS平台来管理他们的业务和数据。然而,这些数据通常散布在不同的SaaS平台中,这对于企业数据的整合和分析来说可能…...

Spark算子使用-Map,FlatMap,Filter,diatinct,groupBy,sortBy

目录 Map算子使用 FlatMap算子使用 Filter算子使用-数据过滤 Distinct算子使用-数据去重 groupBy算子使用-数据分组 sortBy算子使用-数据排序 Map算子使用 # map算子主要使用长场景,一个转化rdd中每个元素的数据类型,拼接rdd中的元素数据&#xf…...

CSS响应式布局

CSS 响应式布局也称自适应布局,是 Ethan Marcotte 在 2010 年 5 月份提出的一个概念,简单来讲就是一个网站能够兼容多个不同的终端(设备),而不是为每个终端做一个特定的版本。这个概念是为解决移动端浏览网页而诞生的。…...

AI大模型书籍丨掌握 LLM 和 RAG 技术,这本大模型小鸟书值得一看!

本指南旨在帮助数据科学家、机器学习工程师和机器学习/AI 架构师探索信息检索与 LLMs 的集成及其相互增强。特别聚焦于 LLM 和检索增强生成(RAG)技术在信息检索中的应用,通过引入外部数据库与 LLMs 的结合,提高检索系统的性能。 …...

Mysql和Oracle使用差异和主观感受

这两种常用的关系型数据库有何差异? 支持和社区 MySQL:有一个活跃的开源社区,用户可以获取大量的文档和支持。 Oracle:提供了专业的技术支持,但通常需要额外的费用。 易用性 MySQL:通常被认为是更易于学…...

【Java】—— File类与IO流:File类的实例化与常用方法

目录 1. java.io.File类的使用 1.1 概述 1.2 构造器 1.3 常用方法 1、获取文件和目录基本信息 2、列出目录的下一级 3、File类的重命名功能 4、判断功能的方法 5、创建、删除功能 1.4 练习 练习1: 练习2: 练习3: 1. java.io.Fil…...

C++设计模式——装饰器模式

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 什么是装饰器模式? 装饰器模式(Decorator Pattern)是一种结构型设计模式,允许你向一个现有的对象添加新的功能,同时又不改变其结构。这种模式通过创…...

C#使用ITextSharp生成PDF文件实例详解

许多项目开发中需要生成PDF, 常规办法使用官方提供的Microsoft.Office.Interop.Worddll插件,但是这种方法需要完全安装OFFICE,另外版本不一致还会出现很多错误。一般不推荐使用。 下面介绍这种巧妙的用法,定能事半功倍。 本文使用ITextSharp完成功能。 首先,通过NuGet…...

10.9QT对话框以及QT的事件机制处理

MouseMoveEvent(鼠标移动事件) widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 设置窗口为无边框,去掉标题栏等装饰this->setWi…...

SiLM266x系列SiLM2661高压电池组前端充/放电高边NFET驱动器 为电池系统保护提供可靠性和设计灵活性

SiLM2661产品概述: SiLM2661能够灵活的应对不同应用场景对锂电池进行监控和保护的需求,为电池系统保护提供可靠性和设计灵活性。是用于电池充电/放电系统控制的低功耗、高边 N 沟道 FET 驱动器,高边保护功能可避免系统的接地引脚断开连接&am…...

linux中sed命令详解

sed 是 Linux 中的一个流编辑器(stream editor),主要用于处理文本的编辑和转换。它可以从文件或标准输入读取内容,然后根据指定的模式和指令对数据进行处理,最后输出修改后的结果。它的强大之处在于可以通过脚本或命令…...

vue 模板语法

Vue 使用一种基于 HTML 的模板语法,使我们能够声明式地将其组件实例的数据绑定到呈现的 DOM 上。所有的 Vue 模板都是语法层面合法的 HTML,可以被符合规范的浏览器和 HTML解析器解析。 文本插值 最基本的数据绑定形式是文本插值,它使用的是…...

bladex漏洞思路总结

Springblade框架介绍: SpringBlade是一个基于Spring Boot和Spring Cloud的微服务架构框架,它是由商业级项目升级优化而来的综合型项目。 0x1 前言 最近跟一些大佬学习了blade的漏洞,所以自己总结了一下,在渗透测试过程中&#x…...

解决SqlServer自增主键使用MybatisPlus批量插入报错问题

报错 SqlServer 表中主键设置为自增,会报以下错误。 org.springframework.jdbc.UncategorizedSQLException: Error getting generated key or setting result to parameter object. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须执行该语句才能获…...

leetcode:反转字符串中的单词III

题目链接 string reverse(string s1) {string s2;string::reverse_iterator rit s1.rbegin();while (rit ! s1.rend()){s2 *rit;rit;}return s2; } class Solution { public:string reverseWords(string s) {string s1; int i 0; int j 0; int length s.length(); for (i …...

深度学习常见问题

1.YOLOV5和YOLOV8的区别 YOLOv5 和 YOLOv8 是两个版本的 YOLO(You Only Look Once)目标检测算法,它们在网络架构、性能优化、功能扩展等方面有显著的区别。YOLOv5 是 YOLO 系列的重要改进版本,而 YOLOv8 是最新的一次重大升级&am…...

神经网络的一些benchmark示例

1.MLPerf https://github.com/mlcommons/inference?tabreadme-ov-file https://docs.mlcommons.org/inference/benchmarks/text_to_image/sdxl/ MLPerf 是一个业界标准的机器学习基准测试套件,旨在评估各种硬件、框架和模型的性能。它包含训练和推理两个部分&…...

如何进行统级架构设计

统级架构设计是一个复杂的过程,需要综合考虑业务需求、技术选型、系统可扩展性、可维护性等多个方面。以下是一份系统级架构设计的方法论,包括以下几个步骤: 需求分析: 与业务相关人员进行深入沟通,了解业务需求、业…...

【数字电路基础】三态门在芯片设计中的关键作用与限制

1. 三态门:数字电路中的交通警察 第一次听说三态门时,我脑海里浮现的是十字路口的红绿灯。这个看似简单的数字电路元件,实际上在芯片设计中扮演着至关重要的角色。三态门之所以特殊,是因为它比普通逻辑门多了一个"隐身"…...

如何让电子书阅读效率提升200%?这款开源神器彻底解决格式兼容与跨设备难题

如何让电子书阅读效率提升200%?这款开源神器彻底解决格式兼容与跨设备难题 【免费下载链接】koreader An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices …...

Homebrew安装后zsh补全报权限警告?深入聊聊macOS下/usr/local的目录权限管理

Homebrew安装后zsh补全报权限警告?深入聊聊macOS下/usr/local的目录权限管理 每次打开终端都看到那个烦人的zsh警告:"insecure directories, run compaudit for list",确实让人头疼。但这个问题背后隐藏着macOS系统权限管理的深层逻…...

RexUniNLU新手入门指南:3步搞定智能家居、金融、医疗场景意图识别

RexUniNLU新手入门指南:3步搞定智能家居、金融、医疗场景意图识别 1. 认识RexUniNLU:零样本意图识别利器 RexUniNLU是一款基于Siamese-UIE架构的轻量级自然语言理解框架,它能让你无需准备标注数据,仅通过简单的标签定义就能完成…...

告别官方驱动:深入解读ES7210寄存器,打造你自己的ESP32音频采集库

告别官方驱动:深入解读ES7210寄存器,打造你自己的ESP32音频采集库 在嵌入式音频开发领域,ES7210作为一款高性能多通道麦克风ADC芯片,因其出色的信噪比和灵活的配置选项,成为ESP32平台上音频采集的热门选择。然而&#…...

Multisim 13.0 仿真 LC 振荡器:从起振到稳定,手把手教你分析波形与频率稳定度

Multisim 13.0 仿真 LC 振荡器:从起振到稳定,手把手教你分析波形与频率稳定度 在电子工程领域,LC振荡器作为基础电路之一,其设计与分析能力是每位硬件工程师的必修课。Multisim作为业界广泛使用的电路仿真软件,为我们…...

QuickRecorder:革新性macOS轻量化录屏解决方案

QuickRecorder:革新性macOS轻量化录屏解决方案 【免费下载链接】QuickRecorder A lightweight screen recorder based on ScreenCapture Kit for macOS / 基于 ScreenCapture Kit 的轻量化多功能 macOS 录屏工具 项目地址: https://gitcode.com/GitHub_Trending/q…...

用嘎嘎降AI处理英文SCI论文完整教程:操作步骤和注意事项

用嘎嘎降AI处理英文SCI论文完整教程:操作步骤和注意事项 被问了太多次嘎嘎降AI英文论文相关的问题,写一篇完整教程。 主要工具是嘎嘎降AI(www.aigcleaner.com),4.8元。第一次用的话有些细节知道和不知道差别挺大的。…...

避坑指南:MATLAB调用ROS2话题时,消息类型错误‘std_msgs/String’怎么办?

MATLAB与ROS2通信避坑指南:消息类型错误的深度解析与实战解决方案 当你在MATLAB中尝试与ROS2系统建立通信时,是否遇到过这样的报错:"Error using ros2subscriber. The message type std_msgs/String is invalid."?这看似…...

机器人中的多模态——RoboBrain

论文下载地址:arxiv.org/pdf/2502.21257 代码地址:https://github.com/FlagOpen/RoboBrain/ 数据集下载地址:https://github.com/FlagOpen/ShareRobot/ 目录1.关于RoboBrain1.1 RoboBrain的潜在应用场景1.2 RoboBrain具备哪些能力2.关于Share…...