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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: (保姆级)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;
相关文章
|
机器学习/深度学习 决策智能
深度学习中的对抗性训练
在这篇技术性文章中,我们将深入探讨深度学习中的对抗性训练。这种训练方法通过引入对抗性样本来提高模型的鲁棒性和泛化能力。文章将从对抗性训练的基本概念、原理以及实现方法等方面进行详细介绍,并结合实际案例分析其在实际应用中的效果和挑战。通过对这一主题的探讨,希望能够为读者提供有益的技术参考和启示。
631 1
|
5月前
|
UED
[HarmonyOS NEXT 实战案例一] 电商首页商品网格布局(下)
在上一篇教程中,我们介绍了如何使用HarmonyOS NEXT的GridRow和GridCol组件实现基本的电商首页商品网格布局。本篇教程将深入探讨GridRow和GridCol组件的高级用法,以及如何优化电商首页的商品展示效果。
110 0
|
SQL Oracle 关系型数据库
[oracle]使用impdp导入数据时卡在视图
[oracle]使用impdp导入数据时卡在视图
517 2
|
机器学习/深度学习 人工智能 文字识别
轻松识别文字,这款Python OCR库支持超过80种语言
轻松识别文字,这款Python OCR库支持超过80种语言
865 2
|
大数据 数据处理 计算机视觉
使用LabVIEW进行大数据数组操作的优化方法
使用LabVIEW进行大数据数组操作的优化方法
406 3
|
人工智能 编解码 算法
Stable Diffusion超详细教程!从0-1入门到进阶
本文提供了Stable Diffusion AI绘画工具的超详细入门到进阶教程,包括本地部署、界面基础、模型选择、ControlNet安装与使用,以及如何通过不断学习和调试提升使用效果。
Stable Diffusion超详细教程!从0-1入门到进阶
风储微网虚拟惯性控制系统simulink建模与仿真
风储微网虚拟惯性控制系统通过集成风力发电、储能系统等,模拟传统同步发电机的惯性特性,提高微网频率稳定性。Simulink建模与仿真结果显示,加入虚拟惯性控制后,电压更平缓地趋于稳定。该系统适用于大规模可再生能源接入,支持MATLAB2022a版本。
|
消息中间件 Kafka Linux
linux如何安装KafKa
linux如何安装KafKa
2114 0
|
机器学习/深度学习 监控 vr&ar
时间序列预测的20个基本概念总结
时间序列是一组按时间顺序排列的数据点
487 2
|
Java 数据库连接 mybatis
[原创]不写mybatis的@Param有的报错有的却不报错问题
[原创]不写mybatis的@Param有的报错有的却不报错问题
[原创]不写mybatis的@Param有的报错有的却不报错问题