(保姆级)Mycat搭建读写分离

简介: (保姆级)Mycat搭建读写分离

前言

上一篇文章《Mysql搭建主从复制功能》,提督分享了搭建mysql数据库主从复制的功能,现在,咱们在这个功能上实现Mycat的读写分离操作。

一、读写分离是什么?

示例:读写分离 是基于mysql数据库主从复制实现的一个功能,该功能让主数据库处理事务性增、改、删操作,从数据库处理查询操作。它是Mycat的一个重要功能之一,保证了一个数据库宕机,系统还可以从另一个数据库获取数据。保证了数据的安全和系统的稳定。

2018122814580746.png

二、使用步骤

1.修改Mycat的配置文件(schema.xml)修改完:wq保存

代码如下:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
    <!--代表数据库的一个配置 与server.xml中的数据库对应 -->
        <schema name="TESTDB" checkSQLschema="false" dataNode="db_node" sqlMaxLimit="100">
        </schema>
        <!--分片配置-->
        <dataNode name="db_node" dataHost="db_host" database="test" />
        <!--物理数据库的配置 balance:0 所有的读操作给master 1:给slave 2:随机分配-->
        <dataHost name="db_host" maxCon="1000" minCon="10" balance="1"
                        writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="hostM1" url="192.168.66.138:3350" user="root" passwor="******">
                        <readHost host="hostS1" url="192.168.66.138:3360" user="root" passwor="******" />
                </writeHost>
        </dataHost>
</mycat:schema>

2.片段代码解释

<schema name="TESTDB" checkSQLschema="false" dataNode="db_node" sqlMaxLimit="100"></schema>

参数:

       schema:逻辑库名字

       sqlMaxLimit:一次取多少条数据

       table:逻辑表

       dataNode:数据节点,对应datanode标签

       rule:分片规则,对象rule.xml配置文件

       primaryKey:分片主键,可缓存

#分片配置
<dataNode name="db_node" dataHost="db_host" database="test" />

参数:

       name:分片名字

       dataHost:分片主机

       database:分片数据库

#配置读写分离
<dataHost name="db_host" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql"                   dbDriver="native" switchType="1" slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="hostM1" url="192.168.66.138:3350" user="root" passwor="******">
         <readHost host="hostS1" url="192.168.66.138:3360" user="root" passwor="******" />
                </writeHost>
        </dataHost>

参数:

       dataHost:数据主机(节点主机)

       dbType:数据库驱动  native:MySQL JDBC: oracle SQLServer

       switchType: 是否主动读 1

       #Balance参数设置:

       1 balance=“0”, 所有读操作都发送到当前可⽤的writeHost上。

       2 balance=“1”,所有读操作都随机的发送到readHost。

       3 balance=“2”,所有读操作都随机的在writeHost、readhost上分发

       #WriteType参数设置:

       1 writeType=“0”, 所有写操作都发送到可⽤的writeHost上。

       2 writeType=“1”,所有写操作都随机的发送到readHost。

       3 writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。

       #switchType参数设置:

       1 switchType="1", 主从自动切换

       2 switchType="2",从机延时超过slaveThreshold值时切换为主读

3.启动mycat

mycat restart

总结

对此,mycat搭建一主一从的读写分离就完成了。

眼睛看,脑子会,一动手就报废,小伙伴赶紧动起手来吧。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
canal 关系型数据库 MySQL
cancal 同步mysql数据到es中
cancal 同步mysql数据到es中
777 1
|
5月前
|
算法 安全 Java
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
本文系统梳理JVM四大垃圾回收算法(标记-清除、标记-复制、标记-整理、分代收集),详解其原理、优劣、适用场景及演进逻辑,并涵盖GC Roots判定、对象晋升、STW机制、收集器对应关系等核心知识点,助力深入理解内存管理与性能调优。
|
5月前
|
算法 Oracle Java
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
CMS是JDK 1.5推出的首个并发低延迟GC,专注老年代回收,以“最短STW”为目标,适用于Web交互系统。其采用三色标记+增量更新实现并发标记与清除,虽停顿短但存在CPU占用高、内存碎片、并发模式失败等固有缺陷,终被G1取代。
|
11月前
|
Java Maven Spring
SpringBoot中如何自定义starter
自定义Spring Boot Starter通常包含两个模块:starter负责依赖管理,autoconfigure实现自动配置。前者引入后者。在autoconfigure中,通过@Configuration和@Bean定义配置类与Bean,并结合@Conditional条件注解控制Bean的创建;最后在META-INF/spring.factories(或Spring Boot 3的xxx.imports文件)中注册自动配置类全名,完成自动化配置。
|
存储 缓存 人工智能
工作中,Redis的15种使用场景
Redis 在现代应用中扮演着至关重要的角色,涵盖缓存加速、分布式锁、实时排行榜、计数器、消息队列等15种常见场景。它通过高效的数据结构和原子操作,大幅提升系统性能和响应速度,广泛应用于会话管理、签到系统、限流控制、购物车、抽奖活动、全页缓存、发布订阅、地理位置服务、分布式ID生成及数据过期处理等领域。灵活运用这些特性,可显著优化开发效率和用户体验。
2543 156
工作中,Redis的15种使用场景
万物皆“发热”:揭秘决定红外面目的关键参数——发射率
红外发射率是物质与生俱来的“热指纹”,决定物体如何与外界交换热能。文章从红外辐射的发现、大气窗口、热辐射基本定律(如基尔霍夫定律、普朗克辐射定律、斯蒂芬-玻尔兹曼定律等)到发射率的概念及其影响因素,全面解析了这一关键物理参数。它不仅在基础物理研究中重要,还广泛应用于热成像、建筑节能、航天热控制等领域,深刻影响生活和科技发展。
|
消息中间件 Java 测试技术
RocketMQ实战—7.生产集群部署和生产参数
本文详细介绍了RocketMQ生产集群的部署与调优过程,包括集群规划、环境搭建、参数配置和优化策略。
RocketMQ实战—7.生产集群部署和生产参数
|
Linux Python
在Linux中,如何查找系统中占用CPU最高的进程?
在Linux中,如何查找系统中占用CPU最高的进程?
|
消息中间件 容灾 物联网
【RocketMQ系列十四】RocketMQ中消息堆积如何处理
【RocketMQ系列十四】RocketMQ中消息堆积如何处理
3235 3
|
消息中间件 编解码 网络协议
京东面试 rockmq是推消息还是拉消息?他的消息模型是啥?
RocketMQ采用拉模式结合长轮询模拟推效果,减少延迟并优化资源使用。在长轮询中,服务器在无消息时保持请求开放,待有新消息时立即响应,提升实时性。利用Netty的TCP连接和异步处理,RocketMQ构建高效通信协议,适应不同吞吐量和实时性需求场景,兼顾控制与实时响应。
605 0
京东面试 rockmq是推消息还是拉消息?他的消息模型是啥?