红帽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” 表示路由策略为 “轮询”。
轮询策略是一种在多个资源或目标之间平均分配负载的方法。当有多个可选的路由、服务器或处理单元时,系统按照一定的顺序依次选择每个选项,以实现较为均衡的资源利用。
采用轮询策略时,第一个请求会被发送到第一个服务器,第二个请求被发送到第二个服务器,以此类推。当到达最后一个服务器后,下一个请求又会回到第一个服务器,形成一个循环。
策略的优点:
- 负载均衡:可以较为平均地将工作负载分配到各个资源上,避免某些资源过度负载而其他资源闲置的情况。
- 简单易实现:不需要复杂的算法和状态管理,易于理解和实现。
策略的缺点:
- 不能限制数据库的读写和访问分流
- 无法动态调整:如果某些资源在运行过程中出现故障或性能下降,轮询策略可能无法及时做出调整,导致请求分配不合理。
部署
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中的元素数据…...

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 是一个业界标准的机器学习基准测试套件,旨在评估各种硬件、框架和模型的性能。它包含训练和推理两个部分&…...

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

鼓组编写:SsdSample鼓映射 GM Map 自动保存 互换midi位置 风格模板 逻辑编辑器
SsdSample音源的键位映射 方便编写鼓的技巧 可以这样去设置键位关系的面板和钢琴卷帘窗的面板,方便去写鼓。 可以先按GM的midi标准去写鼓,然后比对下鼓的键位映射的关系,去调整鼓。 可以边看自己发b站等处的图文笔记,然后边用电…...

使用YOLOv11进行视频目标检测
使用YOLOv11进行视频目标检测 完整代码 import cv2 from ultralytics import YOLOdef predict(chosen_model, img, classes[], conf0.5):if classes:results chosen_model.predict(img, classesclasses, confconf)else:results chosen_model.predict(img, confconf)return r…...

DEEP和DeepBook V3将于10月14日推出
10月14日星期一,DeepBook V3和DEEP token将同时在Sui上线。这两个公告标志着Sui生态内流动性发展的重要时刻,同时引入了去中心化和治理机制。 经过数月的开发,基于Sui构建的安全且完全链上的中央限价订单簿(Central Limit Order …...

学习之高阶编程列表推导式,字典推导式
def test_list_one(): “”“快速生成一个[“data0”, “data1”,]列表”“” list1 [] for i in range(100): list1.append(“data{}”.format(i)) return list1 def test_list_two(): “”" 快速生成一个[“data0”, “data1”,]列表 列表推导式:[x for x …...

QT实现QInputDialog中文按钮
这是我记录Qt学习过程心得文章的第三篇,主要是为了方便QInputDialog输入框的使用,通过自定义的方式,按钮中文化,统一封装成一个函数,还是写在了Skysonya类里面。 实现代码: //中文按钮文本输入对话框 QSt…...

Redis 常用指令技术解读
全文目录: 前言前言摘要简介概述Redis的核心特性Redis指令分类 核心源码解读SET和GET指令EXPIRE指令HSET和HGET指令LPUSH和LPOP指令SADD和SMEMBERS指令ZADD和ZRANGE指令 案例分析案例1:用户登录会话管理案例2:排行榜实现 应用场景演示优缺点分…...

Web前端入门
文章目录 前言1 Web前端概述1.1 网站和网页1.2 HTML语言1.3 网页的形成1.4 常用浏览器1.5 浏览器内核(渲染引擎)1.6 web标准 2 HTML标签2.1 开发工具2.2 HTML语法规则2.3 标签的关系2.4 HTML注释标签2.5 结构标签 3 常用标签3.1 标题标签3.2 段落标签3.3 换行标签3.…...

贝塞尔曲线详细讲解,如何用 Canvas 绘制三阶贝塞尔曲线?
比如我们要画一个这样的曲线,我们该怎么画了 两个点Y轴一样高,起点:(200,100)终点:(300,100)中间的弧度怎么弄了? <canvas id"c1" width"6…...

Ubuntu20.04卸载ros2 foxy版本安装ros1 noetic版本
前言 如果你ubuntu中没有ros,可以试着直接从鱼香ros一键安装包指令处开始。 卸载ros2 sudo apt-get remove ros-*接下来如果你直接使用鱼香ros的一键安装命令,会出错。 设置源 设置源,这里使用的是中科大的。 sudo sh -c . /etc/lsb-r…...

PicGo+Gitee搭建Typora图床
PicGoGitee搭建Typora图床 下载PicGo 下载链接:https://picgo.github.io/PicGo-Doc/zh/guide/#%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85 配置PicGo 插件安装 在PicGo的【插件设置】中搜索gitee-uploader插件并安装 在【图床设置】下配置Gitee repo:用…...