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

【MySQL专题】03、性能优化之读写分离(MaxScale)

   在我们了解了MySQL的主从复制的性能优化之后,紧接着《【MySQL专题】02、性能优化之主从复制》中,我们提及的读写分离,来进行读操作和写操作分散到不同的服务器结构中,同时希望对多个从服务器能提供负载均衡,读写分离和负载均衡是MySQL集群的常规需求,然后MySQL的兄弟公司MariaDB 公司就开发了一种插件式结构,允许用户开发适合自己的插件,这个中间件叫:MaxScale。下面我们就来开始了解MaxScale。 

1、MaxScale 概述

    MariaDB MaxScale是一种数据库代理,可扩展MariaDB Server的高可用性,可伸缩性和安全性,同时通过将其与基础数据库基础架构分离来简化应用程序开发。 

    MariaDB MaxScale采用可扩展的体系结构进行工程设计,以支持插件,从而将其功能扩展到透明负载平衡之外,从而成为例如数据库防火墙。借助用于多个路由器,过滤器和协议的内置插件,可以将MariaDB MaxScale配置为转发数据库请求并根据业务和技术要求修改数据库响应,例如,以屏蔽敏感数据或扩展读取。MaxScale 提供了5类的插件功能,分别如下:

  • 认证

    提供登陆认证功能,MaxScale通过读取并缓存数据库中的user表中的信息,当又连接进来是,先出缓存获取验证,如果没有此用户,会从后端获取更新信息,再次进行验证。
  • 协议

    客户端连接协议和连接数据库协议 
  • 路由

    决定如何把客户端的请求转发给后端数据库服务器?读写分离和负载均衡的功能实现就是通过路由插件完成的。 
  • 监控

    对各个数据库服务器进行监控,例如发现某个数据库服务器响应很慢,那么就不向其转发新的请求。 
  • 日志和过滤

    提供简单的数据库防火墙功能,可以对SQL进行过滤和容错。

2、配置方式&节点介绍

    该实现需要先完成MySQL的主从复制的相关复制结构操作。才能进行下一步操作。主从复制的相关内容,参考《【MySQL专题】02、性能优化之主从复制》。

    按主从复制结构的一主一从的复制结构,本地考虑服务器受限,故MaxScale的不是选择Master节点安装该中间件服务。

  • Master:192.168.202.128

  • Slave:192.168.202.129

3、安装MaxScale 

    MaxScale的下载地址,最新版本2.4.8,实例中使用的是1.4.5,下载地址: https://downloads.mariadb.com/files/MaxScale

  • 安装相关依赖

  • 下载MaxScale的rpm文件

  • 通过rpm文件安装MaxScale

4、配置MaxScale

在配置之前,首先我们在master节点的mysql数据库中为MaxScale创建两个用户,用于监控模块和路由模块。

  • 创建监控用户

  • 创建路由用户

现在我们开始进行配置MaxScale,详细参考如下说明: 

配置【server1】部分,修改address和port,根据各自的复制模式结构,增加server部分,配置对应的address和port信息,实例中配置如下: 

配置【MySQL Monitor】部分,修改servers为server1、server2(根据实际server结构配置servers),同时修改user和passwd为监控用户 

 配置【Read-Write Service】部分,修改servers为server1、server2(根据实际server结构配置servers),同时修改user和passwd为路由用户 

PS:由于配置了【Read-Write Service】部分,所以就不需要【Read-Only Service】,删除或者注释掉,否则会冲突。 

保存&退出编辑器!

5、启动MaxScale 

PS:判断是否启动成功! 

查看MaxScale的响应端口是否启动就绪 

 从上列表,可以发现MaxScale有两个4006和6603端口启动成功,分别是Read-Write Listener、MaxAdmin Listener的端口,分别用于连接MaxScale和MaxScale管理器。 

登陆MaxScale管理器,查看数据库连接状态,默认的用户名和密码是 admin/mariadb 

从上列表,可以发现master和slave均正常运行!同时MaxScale已经连接上了master和slave节点!

6、验证 

在master创建一个测试用户 

使用MySQL命令客户端连接MaxScale 

当有事务开启后,路由自动切换到master,普通的查询操作就可以放到slave上,通过MaxScale中间件可实现MySQL的读写分离和负载均衡。

7、思考 

如何结合MaxScale实现的MySQL读写分离和负载均衡实战到实际应用中?后期后给大家介绍与Java语言结合使用的实战。

8、参考资料

  • MaxScale 2.2 Getting-Started - MariaDB Knowledge Base
  • 轻松实现MySQL读写分离 - 简书
  • https://www.cnblogs.com/ddzj01/p/11573842.html
  • Maxscale安装-读写分离(1) – 运维生存时间
  • http://www.ttlsa.com/mysql/maxscale-right-read-w

相关文章:

【MySQL专题】03、性能优化之读写分离(MaxScale)

在我们了解了MySQL的主从复制的性能优化之后,紧接着《【MySQL专题】02、性能优化之主从复制》中,我们提及的读写分离,来进行读操作和写操作分散到不同的服务器结构中,同时希望对多个从服务器能提供负载均衡,读写分离和…...

Redis7高级之BigKey(二)

1.MoreKey案例 往redis里面插入大量测试数据key 生成100W条redis批量设置kv的语句保存在redisTest.txt for((i1;i<100*10000;i)); do echo "set k$i v$i" >> /tmp/redisTest.txt ;done; # 生成100W条redis批量设置kv的语句(keykn,valuevn)写入到/tmp目录下的…...

flex弹性盒子

概念 弹性盒子是一种用于按行或者按列布局的一维布局方法&#xff0c;元素可以膨胀以填充额外的空间&#xff0c;缩小以适应更小的空间 以下属性是给父元素添加的 1.flex-direction --改变轴的方向 row 默认值 默认沿着x轴排版(横向从左到右排列&#xff08;左对齐&#xff…...

[Java Web]Cookie | 一文详细介绍会话跟踪技术中的Cookie

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;Java Web 目录Cookie1、工作原理2、如何使用2.1、发送Cookie2.2、获取Cookie3、Cookie的存活时间4、中文错误Coo…...

这可能是2023最全的Java面试八股文,共计1658页,Java技术手册的天花板

前两天有个小伙伴在后台留言&#xff0c;最近的面试越来越难了&#xff0c;尤其是技术面&#xff0c;考察得越来越细&#xff0c;越来越底层&#xff0c;庆幸的是最终顺利找到了工作。 一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识 比如果这样的问题…...

字节流及存放本地文件上传和下载文件

前言 之前的文章有写过 vuespringboot使用文件流实现文件下载 实现如何通过 D:\file\文件名.文件格式的形式进行下载文件 但是它对于很多业务场景相对适用性不是很广泛。 以及 elementUI加springboot实现上传excel文件给后端并读取excel 也只能是通过elementui的元素类型进行…...

【翻译】下一步:Go 泛型

原文地址&#xff1a; The Next Step for Generics - The Go Blog https://blog.golang.org/generics-next-step 介绍 自从我们上次写下关于在Go中加入泛型的可能性的文章以来&#xff0c;已经快一年了。现在是该更新的时候了。 设计的更新 我们一直在继续完善泛型设计草案。…...

如何简单实现ELT?

在商业中&#xff0c;数据通常和业务、企业前景以及财务状况相关&#xff0c;有效的数据管理可以帮助决策者快速有效地从大量数据中分析出有价值的信息。数据集成(Data Integration)是整个数据管理流程中非常重要的一环&#xff0c;它是指将来自多个数据源的数据组合在一起&…...

细思极恐,第三方跟踪器正在获取你的数据,如何防范?

细思极恐&#xff0c;第三方跟踪器正在获取你的数据&#xff0c;如何防范&#xff1f; 当下&#xff0c;许多网站都存在一些Web表单&#xff0c;比如登录、注册、评论等操作需要表单。我们都知道&#xff0c;我们在冲浪时在网站上键入的数据会被第三方跟踪器收集。但是&#x…...

Java基础之==,equal的区别(温故而知新)-----点点滴滴的积累

1. 为运算符&#xff0c;equal 为String数据类型的比较方法&#xff1b;相同内容的对象地址不一定相同&#xff0c;但相相同地址的对象内容一定相同&#xff1b; 比较的是值是否相等&#xff0c;equal比较的是是否是同一个对象。 2.基本概念不同 1&#xff09;对于&#xff0c…...

SpringBoot项目使用切面编程实现数据权限管理

springBoot项目使用切面编程实现数据权限管理什么是数据权限管理如何实现数据权限管理什么是数据权限管理 不同用户在某页面看到数据不一致&#xff0c;实现每个用户之间数据隔离的效果。 如以下场景&#xff1a; ● 页面期望展示当前登录人所在部门的数据。 ● 页面期望展示当…...

亚马逊测评是做什么的,风险有哪些?

自养号测评顾名思义就是自己养国外的买家账号给自己店铺提升销量和评论&#xff0c;做过多年的跨境卖家都知道测评可以快速提高产品的排名、权重和销量&#xff0c;&#xff08;国内某宝一样的逻辑&#xff09;但随着测评需求日益增大&#xff0c;卖家在寻求真人测评时也很容易…...

安科瑞导轨式智能通讯管理机

安科瑞 李亚娜 一、概述 AWT200 数据通讯网关应用于各种终端设备的数据采集与数据分析。实现设备的监测、控制、计算&#xff0c;为系统与设备之间建立通讯纽带&#xff0c;实现双向的数据通讯。实时监测并及时发现异常数据&#xff0c;同时自身根据用户规则进行逻辑判断&…...

vs2010下 转换到 COFF 期间失败: 文件无效或损坏

因为同一个电脑上安装多个VS&#xff0c;有多个cvtres.exe。按照下面的操作如果还是不行就在C盘搜索cvtres.exe&#xff0c;然后挨个重命名&#xff0c;看看是调用的哪个&#xff0c;然后修改就可以了。 用VS2010编译C项目时出现这样的错误&#xff1a; LNK1123: 转换到 COFF …...

托福高频真词List19 // 附托福TPO阅读真题

目录 3.28单词 3.29真题​​​​​​​ 3.28单词 legitimately/properlyadv.正当地likewise/similarlyadv.同样地reveal/showv.揭示substantiate/confirmv.证实suppress/stop by forcev.镇压trend/tendencyn.趋势empirical/based on observationa.凭借经验的illuminate/li…...

Go语言项目标准结构应该如何组织的?

这里写自定义目录标题Go项目本身的目录结构Go语言项目典型目录结构GO语言项目最小标准目录结构可执行的Go语言项目目录结构库的Go语言项目目录结构关于internal目录总结参考文章每当我们写一个非hello world实用程序的Go程序或库时&#xff0c;我们都会在项目结构、代码风格和标…...

设计模式简介

设计模式简介 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错…...

#详细介绍!!! 线程池的拒绝策略(经典面试题)

本篇单独讲解线程池的拒绝策略&#xff0c;介绍了当线程池任务满了之后&#xff0c;线程池会以什么样的方式来响应添加进来的任务 目录 一&#xff1a;理解线程池拒绝策略的触发情况代码理解 二&#xff1a;线程池的四种常见的拒绝策略 1.ThreadPoolExecutor.AbortPolicy 2…...

正则表达式作业

利用正则表达式完成下面的操作: 一、不定项选择题 能够完全匹配字符串"(010)-62661617"和字符串"01062661617"的正则表达式包括&#xff08;A &#xff09; A. r"\(?\d{3}\)?-?\d{8}" B. r"[0-9()-]" C. r"[0-9(-)]*\d*&qu…...

《扬帆优配》交易拥挤度达历史极值 当前A股TMT板块性价比几何?

上周&#xff0c;A股商场企稳&#xff0c;但盘面风格分歧再度加深&#xff1a;很多资金涌入以ChatGPT、数字经济为代表的TMT板块&#xff0c;而新能源以及前期强势的“中字头”种类都呈现了回调。兴业证券计算显现&#xff0c;3月24日&#xff0c;TMT及电子板块的商场成交金额占…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...