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

SQL 基础及 MySQL DBA 运维实战 - 6:Mycat代理技术

MySQL DBA运维实战集群与代理技术深度解析引言在现代互联网应用中数据库的高可用性、可扩展性和性能是企业级应用的核心需求。随着业务量的增长单一数据库服务器往往无法满足需求此时数据库集群和代理技术成为解决这些问题的关键方案。一、代理技术概述1.1 什么是数据库代理数据库代理DB Proxy也称为数据库中间件是位于应用程序和数据库服务器之间的一层中间件负责管理数据库连接、分发请求、实现读写分离、负载均衡等功能。1.2 代理技术的核心功能读写分离将读请求和写请求分离到不同的数据库节点提高系统整体性能负载均衡在多个数据库节点之间分发请求避免单点压力过大数据分片支持数据的分片自动路由与聚合实现水平扩展1.3 主流代理产品对比产品名称开发组织特点MySQL ProxyMySQL官方官方产品功能相对基础Atlas奇虎360基于MySQL Proxy开发性能更优DBProxy美团点评针对美团业务场景优化Amoeba早期阿里巴巴功能全面但维护较少Cobar阿里巴巴阿里早期开源产品MyCat阿里巴巴功能强大社区活跃二、Mycat实战详解Mycat作为一款功能强大的数据库中间件提供了完整的数据库分片、读写分离和高可用解决方案。下面我们通过实际案例来详细介绍Mycat的部署和配置。图示2.1 架构设计在本次实战中我们采用以下架构做好域名解析环境如下Mycat服务器192.168.88.29主机名mycatMySQL集群M-M-S-S架构Master110.18.43.41Master210.18.43.170Slave1192.168.0.116Slave2192.168.0.1172.2 部署步骤2.2.1 配置Java环境Mycat基于Java开发首先需要安装JDK资源比较难寻我收集了现成的包包含jdk以及下面需要的资源通过网盘分享的文件jdkmycat链接: https://pan.baidu.com/s/1bFy4wG1WvVdPWXijysXJeQ 提取码: 1031tarxvf jdk-8u91-linux-x64.tar.gz-C/usr/local/ln-s/usr/local/jdk1.8.0_91/ /usr/local/java配置环境变量方便Java调用echoJAVA_HOME/usr/local/java PATH$JAVA_HOME/bin:$PATH export JAVA_HOME PATH/etc/profilesource/etc/profile验证Java安装[rootmycat ~]# java -versionjavaversion1.8.0_91Java(TM)SE Runtime Environment(build1.8.0_91-b14)Java HotSpot(TM)64-Bit Server VM(build25.91-b14, mixed mode)# 查询到版本说明jdk安装成功2.2.2 安装与配置Mycat下载并安装Mycatmycat官网| MYCAT官方网站—中国开源分布式数据库中间件wgethttp://dl.mycat.org.cn/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz# 因为网络问题该下载失效可以用我提供的资源包tarxfv Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz-C/usr/local/配置Mycat前端编辑/usr/local/mycat/conf/server.xml文件配置用户信息并注释掉多余用户大概在95-100行。启动mycat管理员。配置Mycat后端编辑/usr/local/mycat/conf/schema.xml文件配置MySQL集群信息配置前先备份配置文件防止配错恢复使用。cp/usr/local/mycat/conf/schema.xml ./进入配置文件后会有很多注释的内容可以都删掉看着会清晰一些配置示例如下注意我下图配置主机群少了一个结束标签模板中是完整的配置文件模板如下?xml version1.0? !DOCTYPE mycat:schema SYSTEM schema.dtd mycat:schema xmlns:mycathttp://io.mycat/ schema namejiqun checkSQLschemafalse sqlMaxLimit100 dataNodedn1/schema dataNode namedn1 dataHostlocalhost1 databasejiqun / dataHost namelocalhost1 maxCon1000 minCon10 balance0 writeType0 dbTypemysql dbDrivernative switchType1 slaveThreshold100 heartbeatselect user()/heartbeat writeHost hostmaster1 urlmaster1:3306 usermycatproxy passwordAbc2929 readHost hostslave1 urlslave1:3306 usermycatproxy passwordAbc2929 / readHost hostslave2 urlslave2:3306 usermycatproxy passwordAbc2929 / /writeHost writeHost hostmaster2 urlmaster2:3306 usermycatproxy passwordAbc2929 readHost hostslave1 urlslave1:3306 usermycatproxy passwordAbc2929 / readHost hostslave2 urlslave2:3306 usermycatproxy passwordAbc2929 / /writeHost /dataHost /mycat:schema关键配置项包括schemaMycat维护的集群名称datanode后方节点群的名称datahost后方节点群的主机名称writehost写主机readhost读主机关键属性配置balance读写分离策略balance0关闭读写分离功能所有读操作都发送到当前可用的writeHostbalance1开启读写分离所有读操作都随机发送到readHostwriteType写操作策略writeType0备份型所有写操作发送到配置的第一个writeHost第一个挂了切到第二个writeType1负载型所有写操作都随机发送到配置的writeHostswitchType切换模式switchType-1不自动切换switchType1根据延时自动切换switchType2根据MySQL主从同步状态决定是否切换slaveThreshold主从延迟阈值单位为秒例如设置为60表示当主从延迟超过60秒时读请求不会分发到该从节点2.2.3 配置MySQL集群在MySQL集群的所有节点上创建Mycat连接用户及权限grantallon*.*tomycatproxy192.168.88.29identifiedbyAbc2929;其中192.168.88.29是Mycat服务器的IP地址这里有个点就是我的集群是做了双主双从的所以我在其中一台主数据库中创建用户相当于对所有的机器都做了创建的动作。2.2.4 启动Mycat/usr/local/mycat/bin/mycat startStarting Mycat-server…启动成功否则就是配置Mycat后端语法错误。验证Mycat是否启动成功ss-anpt|grepjavapsaux|grepmycat2.2.5 测试Mycat连接安装MySQL客户端并连接Mycatyuminstall-ymariadb# 这里的密码是/usr/local/mycat/conf/server.xml文件中配置的密码mysql-hmycat-uroot-p111111-P8066查看数据库showdatabases;如果在这一步看到了jiqun这个数据库这个数据库只是虚拟的注意后方数据库应该创建这个库。2.3 案例实战案例1基本读写操作在Master1上创建数据库和表createdatabasejiqun;createtablejiqun.t1(idint);通过Mycat进行数据操作select*fromjiqun.t1;insertintojiqun.t1values(3);验证数据同步在MySQL集群的其他节点上验证数据是否同步。案例2多库配置当需要管理多个数据库时可在Mycat的schema.xml文件中配置多个schema每个schema对应一个或多个datanode实现多库的统一管理。配置文件示例如下server.xmlschema.xml三、最佳实践与注意事项3.1 性能优化合理配置连接池根据应用需求调整Mycat的连接池大小优化分片策略根据业务特点选择合适的分片规则监控主从延迟设置合理的slaveThreshold值避免读取过期数据3.2 高可用保障配置多个writeHost实现主库的自动切换定期备份即使使用了集群也需要定期进行数据备份监控系统部署监控系统及时发现和解决问题3.3 常见问题与解决方案连接失败检查网络连接、用户权限和配置文件数据不一致检查主从同步状态调整switchType参数性能下降检查SQL语句、索引使用情况和系统资源代理技术是构建高可用、高性能MySQL集群的关键组件。通过Mycat等中间件我们可以实现读写分离、负载均衡和数据分片等功能为应用提供更加稳定和高效的数据库服务。在实际部署中需要根据业务需求和系统规模选择合适的代理产品和配置方案。同时定期的维护和监控也是确保系统稳定运行的重要保障。3.3 常见问题与解决方案连接失败检查网络连接、用户权限和配置文件数据不一致检查主从同步状态调整switchType参数性能下降检查SQL语句、索引使用情况和系统资源代理技术是构建高可用、高性能MySQL集群的关键组件。通过Mycat等中间件我们可以实现读写分离、负载均衡和数据分片等功能为应用提供更加稳定和高效的数据库服务。在实际部署中需要根据业务需求和系统规模选择合适的代理产品和配置方案。同时定期的维护和监控也是确保系统稳定运行的重要保障。

相关文章:

SQL 基础及 MySQL DBA 运维实战 - 6:Mycat代理技术

MySQL DBA运维实战:集群与代理技术深度解析 引言 在现代互联网应用中,数据库的高可用性、可扩展性和性能是企业级应用的核心需求。随着业务量的增长,单一数据库服务器往往无法满足需求,此时数据库集群和代理技术成为解决这些问题…...

实战应用:使用快马平台为vmware17部署生成企业级健康检查与配置方案

在实际的企业IT环境中,部署VMware vSphere 17(以下简称VMware 17)这类虚拟化平台往往不是简单的安装过程,而是需要综合考虑硬件兼容性、系统配置、安全策略等多方面因素。为了确保部署过程的顺利和后续运行的稳定,我们…...

AI赋能开发:让快马平台智能理解并生成产区标准图交互应用

AI赋能开发:让快马平台智能理解并生成产区标准图交互应用 最近在做一个农产品产区标准查询系统的项目,发现用传统方式开发这类需求特别费时。比如要处理用户自然语言查询、动态生成地图、实现智能推荐逻辑,光写基础代码就得花好几天。后来尝…...

新手必看:在快马平台学习排列组合公式的代码实现

新手必看:在快马平台学习排列组合公式的代码实现 作为一个编程新手,当我第一次接触排列组合公式时,那些数学符号和递归逻辑让我一头雾水。直到在InsCode(快马)平台上找到了带详细注释的示例代码,才真正理解了Cn和An公式的实现原理…...

赋能音乐自由:Unlock Music技术解密与全场景应用指南

赋能音乐自由:Unlock Music技术解密与全场景应用指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https:…...

告别重复造轮子:用快马AI一键生成高复用性imToken集成代码模块

告别重复造轮子:用快马AI一键生成高复用性imToken集成代码模块 开发涉及钱包集成的DApp时,最让人头疼的就是那些重复性的基础代码。每次新项目都要重新写一遍连接钱包、处理授权、监听网络切换的逻辑,不仅浪费时间,还容易引入安全…...

终极窗口尺寸编辑器:SRWE让你的应用程序窗口自由伸缩

终极窗口尺寸编辑器:SRWE让你的应用程序窗口自由伸缩 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE Simple Runtime Window Editor (SRWE) 是一款革命性的开源工具,它能让你实时调整任何…...

音乐标签编辑器:让本地音乐元数据管理效率提升90%的开源工具

音乐标签编辑器:让本地音乐元数据管理效率提升90%的开源工具 【免费下载链接】music-tag-web 音乐标签编辑器,可编辑本地音乐文件的元数据(Editable local music file metadata.) 项目地址: https://gitcode.com/gh_mirrors/mu/…...

FanControl完全指南:5分钟掌握Windows风扇智能控制

FanControl完全指南:5分钟掌握Windows风扇智能控制 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

如何用3dsconv解决3DS游戏格式兼容问题:从入门到精通的转换指南

如何用3dsconv解决3DS游戏格式兼容问题:从入门到精通的转换指南 【免费下载链接】3dsconv Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format 项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv …...

M2LOrder模型在STM32项目中的潜在应用:边缘设备情绪反馈

M2LOrder模型在STM32项目中的潜在应用:边缘设备情绪反馈 最近在捣鼓一个基于STM32的智能硬件项目,想给它加点“人情味”。比如,当用户对它说话时,它能感知到用户的情绪是开心还是沮丧,并给出更贴切的反馈。这听起来很…...

Audio2Face深度解析:音频驱动面部动画的技术架构与实战指南

Audio2Face深度解析:音频驱动面部动画的技术架构与实战指南 【免费下载链接】FACEGOOD-Audio2Face http://www.facegood.cc 项目地址: https://gitcode.com/gh_mirrors/fa/FACEGOOD-Audio2Face 在虚拟数字人快速发展的今天,如何让虚拟角色拥有自然…...

安卓应用按钮样式问题及解决方案

在开发安卓应用的过程中,我们常常会遇到一些看似简单但实际上隐藏着复杂问题的样式问题。今天我们来探讨一个在更换设备后按钮样式发生变化的问题。 问题描述 一位开发者在Android Studio中开发了一个食谱应用。当他从一台手机切换到另一台手机运行应用时,发现所有的按钮都…...

Sketch Measure: 设计标注自动化的创新实践

Sketch Measure: 设计标注自动化的创新实践 【免费下载链接】sketch-measure Make it a fun to create spec for developers and teammates 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-measure 在数字化产品开发流程中,设计稿到代码实现的转化始终…...

如何使用usearch构建精准视频内容推荐系统:基于观看历史的向量匹配方案

如何使用usearch构建精准视频内容推荐系统:基于观看历史的向量匹配方案 【免费下载链接】usearch Fast Open-Source Search & Clustering engine for Vectors & Arbitrary Objects in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoL…...

NSSCTF做题记录九 | [HUBUCTF 2022 新生赛]checkin

[HUBUCTF 2022 新生赛]checkin <?php show_source(__FILE__); //高亮显示当前代码 $username "this_is_secret"; //给$username赋值 $password "this_is_not_known_to_you"; //给$password赋值 include("flag.php");//here I chan…...

图解Linux内核DRM框架:从用户态ioctl到plane更新的完整数据流(以4.14版本为例)

图解Linux内核DRM框架&#xff1a;从用户态ioctl到plane更新的完整数据流&#xff08;以4.14版本为例&#xff09; 在图形显示技术领域&#xff0c;Linux内核的DRM&#xff08;Direct Rendering Manager&#xff09;框架扮演着核心角色。本文将聚焦于DRM_IOCTL_MODE_SETPLANE这…...

手机号查QQ号:解密腾讯通信协议的Python实战工具

手机号查QQ号&#xff1a;解密腾讯通信协议的Python实战工具 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经遇到过这样的情况&#xff1a;手头有一个手机号&#xff0c;想知道它是否关联了QQ账号&#xff1f;或者作为开发…...

Qwen-Image镜像实战:基于RTX4090D,轻松实现图片问答与内容分析

Qwen-Image镜像实战&#xff1a;基于RTX4090D&#xff0c;轻松实现图片问答与内容分析 1. 引言&#xff1a;Qwen-Image镜像的核心价值 在当今多模态AI技术快速发展的背景下&#xff0c;能够同时理解图像和文本的视觉语言模型正变得越来越重要。Qwen-Image作为通义千问系列中的…...

从HC-SR04老用户视角,实测2020新版:盲区更小、功耗更低,但这两点不注意容易翻车

HC-SR04新版深度评测&#xff1a;老用户必看的5个升级细节与3个隐藏陷阱 第一次拿到2020版HC-SR04时&#xff0c;我差点以为发错了货——外观几乎和老版本一模一样&#xff0c;连螺丝孔位都分毫不差。但当我用示波器捕捉到仅2.1mA的工作电流时&#xff0c;才确信这确实是用上了…...

Qwen3-14B企业知识图谱构建:从私有文档抽取实体关系实践

Qwen3-14B企业知识图谱构建&#xff1a;从私有文档抽取实体关系实践 1. 企业知识图谱构建概述 在当今企业数字化转型浪潮中&#xff0c;知识图谱作为结构化知识表示的重要方式&#xff0c;正成为企业知识管理的核心基础设施。传统知识图谱构建需要大量人工标注和规则设计&…...

效率翻倍,一键生成企业级vue3+ts+pinia项目脚手架,告别重复环境配置

最近在搭建一个企业级中后台管理系统时&#xff0c;发现从零开始配置Vue3项目环境特别耗时。传统方式需要手动安装各种依赖、配置代码规范、设计目录结构&#xff0c;经常因为版本兼容问题卡住半天。后来尝试用InsCode(快马)平台生成项目脚手架&#xff0c;效率直接翻倍&#x…...

5个关键步骤:OpenCore Legacy Patcher旧Mac设备系统升级全攻略

5个关键步骤&#xff1a;OpenCore Legacy Patcher旧Mac设备系统升级全攻略 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 随着苹果公司对旧款Mac设备的系统支…...

实战指南:为spring boot项目快速配置最优jdk环境,助力应用高效部署

最近在准备一个Spring Boot项目时&#xff0c;发现JDK环境配置这个看似简单的环节其实藏着不少学问。特别是当项目需要兼顾开发效率和生产环境稳定性时&#xff0c;合理的JDK配置方案就显得尤为重要。今天就来分享下我的实战经验&#xff0c;以及如何利用工具快速搞定这些配置。…...

AI原生应用领域链式思考:构建高效应用架构

AI原生应用领域链式思考&#xff1a;构建高效应用架构 关键词&#xff1a;AI原生应用、链式思考、应用架构、大模型协同、上下文管理 摘要&#xff1a;本文从AI原生应用的核心特征出发&#xff0c;结合"链式思考"这一关键设计模式&#xff0c;系统讲解如何构建高效能…...

OpCore-Simplify:黑苹果配置的终极简化方案——从复杂到简单的革命性转变

OpCore-Simplify&#xff1a;黑苹果配置的终极简化方案——从复杂到简单的革命性转变 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经因为黑…...

告别杀后台!深度评测Ba-KeepAlive-U:这款UniAppX安卓保活插件到底有多强?(附多机型测试结果)

Ba-KeepAlive-U技术解析&#xff1a;如何为UniAppX应用实现跨机型保活方案 在移动应用开发领域&#xff0c;后台进程存活率一直是困扰开发者的技术难题。尤其对于需要持续运行定位、即时通讯或数据同步功能的应用&#xff0c;系统资源管理策略导致的"杀后台"现象直接…...

Qwen3-ASR-1.7B实战教程:结合Punctuation Restoration模型提升标点准确率

Qwen3-ASR-1.7B实战教程&#xff1a;结合Punctuation Restoration模型提升标点准确率 语音识别技术已经相当成熟&#xff0c;但识别结果往往缺少标点符号&#xff0c;让长文本阅读变得困难。本文将教你如何将Qwen3-ASR-1.7B语音识别模型与标点恢复技术结合&#xff0c;获得既准…...

Qwen2.5-VL应用指南:如何用它做智能客服、文档分析和内容创作

Qwen2.5-VL应用指南&#xff1a;如何用它做智能客服、文档分析和内容创作 1. 引言&#xff1a;认识Qwen2.5-VL的强大能力 Qwen2.5-VL是通义千问团队推出的最新视觉-语言多模态模型&#xff0c;相比前代产品有了显著提升。这个7B参数的模型不仅能理解图像内容&#xff0c;还能…...

忍者像素绘卷惊艳效果:宇智波佐助千鸟刃×16-Bit闪电特效像素动效展示

忍者像素绘卷惊艳效果&#xff1a;宇智波佐助千鸟刃16-Bit闪电特效像素动效展示 1. 作品概览 忍者像素绘卷是基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;它将传统忍者文化与16-Bit复古游戏美学完美融合。这款工具特别适合创作具有强烈视觉冲击力的像素风格动漫角…...