MyCat加MySQL实现读写分离,故障转移

基因家族的鉴定-基于Windows系统上的HMMER 基因家族的鉴定-基于Windows系统上的HMMER。 阅读详情

采用专职专责的设计减少数据库压力,提高性能,将写请求交给Master处理,读请求交给Slave处理,从而提高系统性能,减缓数据库压力
在这里插入图片描述

MySQL5.7主从同步环境搭建
https://blog.youkuaiyun.com/l_learning/article/details/103629651

MyCat官网
http://www.mycat.io/

环境Mycat-server-1.5.1 + MySQL5.7

MyCat 127.0.0.1
MySQL master 192.168.241.200
MySQL slave1 192.168.241.201
MySQL slave2 192.168.241.202

在数据库中为Mycat新建一个账号并赋权

CREATE USER  'MyCat'@'host'  IDENTIFIED BY  '666666';
GRANT ALL privileges ON `goods`.* TO 'MyCat'@'host';
--赋予所有权限
GRANT ALL PRIVILEGES ON `goods`.* TO  'MyCat'@'host';
--刷新权限
FLUSH PRIVILEGES;

server.xml配置

在conf目录下的server.xml
配置一个MyCat用户供应用连接到mycat,同时mycat 在schema.xml中配置后了一个逻辑库MyCat,配置好逻辑库与用户的映射关系

<user name="MyCat">
    <property name="password">666666</property>
    <property name="schemas">MyCat</property>
</user>

schema.xml配置

schema标签中的name属性(MyCat)必须与server.xml中的user标签的逻辑库一致(MyCat)

<schema name="MyCat" checkSQLschema="false" sqlMaxLimit="100" dataNode="mycatdb">
</schema>
<dataNode name="mycatdb" dataHost="mycluster" database="goods" />

<!-- 开启读写分离必须将balance修改为1-->
<dataHost name="mycluster" maxCon="1000" minCon="10" balance="1"
    writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
    <heartbeat>show slave status</heartbeat>
    <!-- 读写分离 -->
    <writeHost host="Master" url="192.168.241.200:3306" user="root" password="666666">
        <readHost host="Slave1" url="192.168.241.201:3306" user="root" password="666666" />
        <readHost host="Slave2" url="192.168.241.202:3306" user="root" password="666666" />
    </writeHost>
</dataHost>

启动MyCat

修改conf目录下的log4j.xml的日志等级为DEBUG

<root>
   <level value="DEBUG" />
   <appender-ref ref="FILE" />
</root>

这里使用的是window版,双击startup_nowrap.bat即可
Linux启动

./mycat start

插入一条数据,通过mycat.log查看mycat连接的真实数据库

INSERT INTO good VALUES (3,'方便面',8)

200的是主节点,执行写操作
在这里插入图片描述
查询数据库记录,通过mycat.log查看mycat连接的真实数据库

DELETE FROM good WHERE good_id = 3

202的是从节点,执行读操作
在这里插入图片描述

故障转移

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/" >

    <schema name="MyCat" checkSQLschema="false" sqlMaxLimit="100" dataNode="mycatdb">
    </schema>
    <dataNode name="mycatdb" dataHost="mycluster" database="goods" />

    <!-- 开启读写分离必须将balance修改为1-->
    <dataHost name="mycluster" maxCon="1000" minCon="10" balance="1"
        writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>show slave status</heartbeat>
        <!-- 读写分离 -->
        <writeHost host="Master" url="192.168.241.200:3306" user="root" password="666666">
            <readHost host="Slave1" url="192.168.241.201:3306" user="root" password="666666" />
            <readHost host="Slave2" url="192.168.241.202:3306" user="root" password="666666" />
        </writeHost>
        <!-- 主从切换 -->
        <writeHost host="Slave1" url="192.168.241.201:3306" user="root" password="666666"></writeHost>
        <writeHost host="Slave2" url="192.168.241.202:3306" user="root" password="666666"></writeHost>
    </dataHost>
  
</mycat:schema>

把主节点关闭,执行写操作会将一个从节点提升为主节点,执行写操作从而实现故障转移

通信工程学习:什么是OLT光线路终端 OLT(光线路终端)是无源光网络(PON)的核心局端设备,负责光/电信号转换、数据处理、带宽分配及用户管理。具有高带宽、低损耗、高安全性和易维护等技术特点,广泛应用于家庭、企业及公共机构宽带接入。未来将向更高性能、智能化方向发展,结合SDN/NFV等新技术,提升网络服务质量。 阅读详情

相关推荐

商城系统全链路压测实战指南

全链路压测是模拟真实用户行为和生产环境流量,验证整个系统在高压下的稳定性和性能表现的关键手段。

monk all the way 1228

基于MyCat的MySql自动故障转移

# MySql双主复制 ## 创建主a,b镜像 建立文件夹,创建相关文件,这里只给a的过程 mkdir mysql-mm-a touch Dockerfile touch mysql.cnf mkdir /var/docker/mysql/data-mm-a 文件内写入相应内容

Coding changes the world 719

电子工程师必看:2024年IPC-A-610J和J-STD-001J新标准到底更新了啥?

本文深入解析2024年IPC-A-610J和J-STD-001J新标准的核心更新,重点关注电子制造领域的验收标准与工艺参数变化。新版标准强化了高密度组装和微焊接工艺的规范,包括焊料润湿角调整、BGA空洞率严格化等关键变更,为电子工程师提供实用指南。同时关联IPC-7711/21D和IPC-2221C的配套更新,助力企业快速适应新标准要求。

weixin_33694620的博客 776

手把手教你实现MySQL读写分离+故障转移,不信你学不会!

上一篇发了手动搭建Redis集群和MySQL主从同步(非Docker)之后,很多同学对文中主从结构提到的读写分离感兴趣,本打算在双十一期间直接把读写分离分享给大家,奈何工作一直没停下,所以这周抽空把这些分享出来。

Java笔记虾 2021

手把手教你用运放和基准源,把±10V信号变成ADC能吃的0-4V(附完整计算过程)

本文详细介绍了如何利用OP07运放和REF5040基准源设计工业级信号调理电路,将±10V传感器信号转换为0-4V ADC可接受范围。通过七步流程,包括需求分析、元器件选型、电路设计、理论计算、PCB布局、实测验证与性能优化,帮助工程师解决信号不匹配问题,提升系统精度与稳定性。

weixin_28731223的博客 466

5分钟搞定!用L型匹配电路优化窄带天线性能(附Smith圆图实操)

本文针对窄带天线阻抗匹配难题,提供了一套5分钟快速解决方案。通过详解L型匹配电路的核心原理,并结合Smith圆图这一射频工程师的“瑞士军刀”,手把手指导如何选择拓扑、计算元件值并进行实际调试,旨在帮助硬件工程师高效优化天线性能,实现最大功率传输。

yyy34的博客 443

Mycat读写分离案例及故障转移

1.server.xml 标签结构 system property user property quarantine whitehost blacklist 标签和属性 system:内容与mycat进程启动时占用的资源,内部配置属性有关 property:可以配置压缩格式,配置端口号,配置占用系统的线程资源等等。 user:mycat登录的用户配置。权限配置等 name:用户名 password:用户密码 sche...

浅时光|初如梦 699

告别Keil?在Mac上配置STM32CubeIDE + CMSIS-DAP调试器全攻略(含常见报错解决)

本文详细介绍了在Mac平台上配置STM32CubeIDE与CMSIS-DAP调试器的全流程,包括硬件准备、软件安装、工程创建及调试优化。通过实战指南,帮助开发者高效完成STM32开发,解决常见报错问题,提升开发效率。

weixin_30485379的博客 431

《Mycat分布式数据库架构》之故障切换

Mycat会定期对一个dataHost里的所有writeHost和readHost节点发起心跳检测。在正常情况下,Mycat会将第一个writeHost作为写节点,所有的DML SQL都会发送到此节点,若Mycat开启了读写分离,则查询节点会根据读写分离的策略发往readHost(和writeHost)执行。 在一个dataHost里面配置两个或多个writeHost的情况下,如果第一个writeHost宕机,则Mycat会在默认的3次心跳检查失败后,自动切换至下一个可用的writeHost执行...

程序员大佬超的博客 1101

网页内容抓取的艺术:使用R语言解析动态网页

本文探讨了使用R语言处理动态网页数据的方法。针对AJAX加载的学术网站,传统的静态抓取和RSelenium方法存在会话终止、浏览器错误等问题。通过分析发现内容通过admin-ajax.php加载,提出使用httr2模拟POST请求获取数据,配合rvest解析HTML内容。该方法避免了浏览器自动化的弊端,实现了高效稳定的动态内容提取,为处理类似AJAX网站提供了通用解决方案。

m0_74337424的博客 52

AI快速变现之路,AI视频创作

初期投入$3000(工具订阅+样片制作),重点攻克跨境电商和本地生活服务市场。关注2025年AIGC视频工具的API降价趋势(如Pika企业版折扣可达50%),建议与云服务商签订长期合作协议。

qq_29896351的博客 1980

mycat故障转移,读写控制,及分片

访问原理 - 客户发sql语句 - mycat拦截器计算分片读写分离 - 从池里获取后端连接 - 发送sql - 放回结果 故障转移配置 <?xml version="1.0"?> <mycat:schema xmlns:mycat=“http://org.opencloudb/” > <schema name="mstest" checkSQLschema=...

weixin_44617428的博客 448

零基础学GPU KMD--8. 内存管理:GPU 显存与系统内存的协同​8.1 显存分配策略:GEM / TTM 原理

支持 VRAM、GTT(Graphics Translation Table)、SYSTEM 内存的动态迁移与缓存管理。:若缓冲区在 SYSTEM,TTM 分配 GTT 条目并建立页表映射,使 GPU 可直接访问。:系统内存中预留给 GPU 直接访问的区域,通过 GPU 的 MMU 做地址翻译。你需要我继续展开这一部分吗?​ 为复杂离散 GPU 设计,应对大容量 VRAM、多内存域、显存迁移等问题。:重量级、功能全,适合大容量、多内存域的离散 GPU,强调显存迁移与统一管理。

amy_mhd的博客 185

SpringBoot +MySQL+mycat 实现读写分离+故障转移

关于MySQL的读写分离的实现,有两种方式,第一种方式即我们手动在代码层实现逻辑,来解析读请求或者写请求,分别分发到不同的数据库中,实现读写分离;第二种方式就是基于MyCat中间件来实现读写分离的效果;这两种方式我都会在这篇博客中进行详细地介绍、搭建,并且分析其中的优劣。 原理初探 从MySQL的主从同步开始谈起,最开始我们的数据库架构是这样的。 主库负责了所有的读写操作,而从库只对主库...

卡洛斯利伯 2035

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

《Mycat核心技术》第17章:实现MySQL的读写分离

介绍Myca实现MySQL的读写分离案例,掌握Mycat在实际案例场景中的应用,能够结合自身实际项目将Mycat灵活应用到自身实际项目中。

冰河的专栏 1532

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MyCAT实现MySQL读写分离:原理、部署与实战指南

9066

XYL6AAD8C的博客 1012

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

动手实现MySQL读写分离and故障转移

前言 久违了,由于最近新项目下来了,所以工作特别忙,导致迟迟没更,上一篇发了手动搭建Redis集群和MySQL主从同步(非Docker)之后,很多同学对文中主从结构提到的读写分离感兴趣,本打算在双十一期间直接把读写分离分享给大家,奈何工作一直没停下,所以这个周末抽空把这些分享出来。 关于MySQL的读写分离的实现,有两种方式,第一种方式即我们手动在代码层实现逻辑,来解析读请求或者写请求,分别分发到...

Object的博客 1676

教你实现MySQL读写分离+故障转移

前言 上一篇发了手动搭建Redis集群和MySQL主从同步(非Docker)之后,很多同学对文中主从结构提到的读写分离感兴趣,本打算在双十一期间直接把读写分离分享给大家,奈何工作一直没停下,所以这周抽空把这些分享出来。 关于MySQL的读写分离的实现,有两种方式,第一种方式即我们手动在代码层实现逻辑,来解析读请求或者写请求,分别分发到不同的数据库中,实现读写分离;第二种方式就是基于MyCat中间...

乐此不皮的博客 865

MySQL数据库(四)—— 使用MyCat实现MySQL主从读写分离实战指南

MyCat实现MySQL主从读写分离指南 本文介绍了使用MyCat中间件实现MySQL主从读写分离的完整方案。主要内容包括: MySQL读写分离原理:详细解释了主库处理写操作、从库处理读操作的工作原理,以及数据同步机制。 MyCat中间件特性:作为开源企业级数据库中间件,MyCat支持ACID事务、分库分表、读写分离和故障切换等功能。 部署配置步骤: 环境准备与软件安装 创建专用用户和权限设置 Java环境配置和目录结构说明 核心配置文件详解(server.xml和schema.xml) 架构优势:通过读写

荣光波比的博客 1356

mysql mycat读写分离_Mysql读写分离(Mycat版)

(1).读写分离概述1)工作原理读写分离是让主数据库处理事务性增删改操作(insert、delete、update),让从数据库处理查询查询操作(select)。2)作用1.分担负载2.主从只负责各自的写和读,极大的缓解X锁和S锁争用3.从库可配置MyISAM引擎,提升查询性能以及节约系统开销4.增加冗余,提高可用性3)实现方法一、应用程序和网站程序的实现。指的是在应用程序内部及连接器中实现读写分...

weixin_39611161的博客 237

手把手教你实现mysql读写分离+故障转移

前言 上一篇发了手动搭建Redis集群和MySQL主从同步(非Docker)之后,很多同学对文中主从结构提到的读写分离感兴趣,本打算在双十一期间直接把读写分离分享给大家,奈何工作一直没停下,所以这周抽空把这些分享出来。 关于MySQL的读写分离的实现,有两种方式,第一种方式即我们手动在代码层实现逻辑,来解析读请求或者写请求,分别分发到不同的数据库中,实现读写分离;第二种方式就是基于MyCat中...

疯一样的女子 1254

MyCAT实现MySQL的读写分离

在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如果数据库不小心挂掉了,则同时也意味着程序的不可用,而这对很多应用来说,并不能接受。 引入MySQL中间件能很好的对程序端和数据库进行解耦,这样,程序端只需关注数据库中间件的地址,而无需知晓底层

slowtech的博客 364

mysql读写分离实现_如何实现MySQL数据库的读写分离?

上一篇文章我们已经介绍过《MySQL是如何实现主从备份的?》但如果主库只负责所有的读写操作,而从库只实现备份功能,这样的主从架构看起来性价比似乎不是很高。我们所希望的主从架构是,当我们在写数据时,请求全部发到Master节点上,当我们需要读数据时,请求全部发到Slave节点上。并且多个Slave节点最好可以存在负载均衡,那么这样的架构就能够让集群的效率最大化。实现读写分离,实际上有两种经...

weixin_39929687的博客 1637

MySQL实现读写分离的两种经典方案

备胎也有转正的一天

Craig无忌 2802

25、Mysql中间件实现mysql读写分离-MYCAT

MySQL中间件是指在MySQL数据库服务器和应用程序之间增加一个中间层,用于实现负载均衡、故障转移、自动分片等功能。常见的MySQL中间件有MySQL Proxy、MySQL Router、MaxScale、ProxySQL、Mycat等。MycatMycat是一款开源的MySQL中间件,可以实现数据分片和读写分离等功能...

weixin_37540600的博客 485

MyCat实现MySQL主从读写分离

一、MySQL读写分离的概述 二、什么是MyCat 三、搭建MYCAT 一、MySQL读写分离的概述 MySQl作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台MySQL作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。 因此,一般来说都是通过 主从复制(Master-Sl...

diexingtao9618的博客 248
上一篇: SpringBoot父子工程搭建
下一篇: 简易版Http请求工具
l_learning
博客等级 码龄8年 15粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值