千家信息网

Mycat学习实战-Mycat基本功能

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Mycat学习实战-Mycat基本功能学习 mycat mysqlMycat学习实战-Mycat基本功能1. Mycat高可用-读写分离1.1 读写分离配置参数1.2 心跳配置参数2. Mycat高可
千家信息网最后更新 2026年10月31日Mycat学习实战-Mycat基本功能

Mycat学习实战-Mycat基本功能


学习 mycat mysql



  • Mycat学习实战-Mycat基本功能
  • 1. Mycat高可用-读写分离

    • 1.1 读写分离配置参数

    • 1.2 心跳配置参数

  • 2. Mycat高可用-多主切换

    • 2.1 主从切换配置参数

    • 2.2 主从切换标记

  • 3 注解


1. Mycat高可用-读写分离

1.1 读写分离配置参数

Schema.dataHost 参数balance设置值:

  1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。

  2. balance="1",全部的readHost与stand by writeHost参与select语句的负载均衡,
    简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),
    正常情况下,M2,S1,S2都参与select语句的负载均衡。

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

  4. balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力

事务内的SQL,默认走写节点,以注释/balance/开头,则会根据balance="1"或"2"去获取 b.
非事务内的SQL,开启读写分离默认根据balance="1"或"2"去获取,以注释/balance/开头则会走写解决部分已
经开启读写分离,但是需要强一致性数据实时获取的场景走写

1.2 心跳配置参数

switchType="1" :基于基本的表访问判断
schema.xml

select user()

switchType="2" : show slave status会显示主从同步状态
schema.xml

show slave status 

Mycat心跳机制通过检测 show slave status 中的 "Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延,当Seconds_Behind_Master>slaveThreshold时,读写分离筛选器会过滤掉此Slave机器。

switchType="3" ,MyCAT心跳检查语句配置为 show status like 'wsrep%' ,开启MySQL集群复制状态状态绑定的读写分离与切换机制
schema.xml

 show status like 'wsrep%' 

配置文件:conf/log4j2.xml
日志文件:logs/mycat.log
说明:修改log4j日志收集为debug方式,通过log信息可以分析出来是否读写分离发
生在那个节点

2. Mycat高可用-多主切换

2.1 主从切换配置参数

schema.xml

select user()

需要配置多个writeHost节点

switchType属性
-1 表示不自动切换
1 默认值,自动切换
2 基于MySQL主从同步的状态决定是否切换 ,心跳语句为show slave status
3 基于MySQL galary cluster的切换机制(适合集群)心跳语句为 show status like 'wsrep%'

2.2 主从切换标记

conf/dnindex.properties

#update#Tue Jul 25 14:20:40 CST 2017dh-01=0

使用中注意事项:
前提是的配置至少2个writeHost
并且开启自动切换
能不自动切就别自动切
能手动执行就不要自动
数据丢失问题
原主加入后当从

3 注解

mycat对不支持的sql提供一种方案即为注解(在要执行的sql语句前添加额外的一段由注解sql组成的代码,这样sql就能正确执行,相当于对不支持的sql语句做了一层透明代理转发。)
形式是:
/*!mycat: sql=Sql语句*/真正执行Sql
注解支持的'!'不被 mysql 单库兼容,
注解支持的'#'不被 mybatis 兼容
新增加 mycat 字符前缀标志 Hintsql:"/* mycat: /"

参数说明整理列表:

参考资料:
[1] http://mycat.io/
[2] 《分布式数据库架构及企业实践--基于Mycat中间件》
[3] 龙哥官方课程课件


切换 配置 主从 参数 语句 注解 状态 机制 支持 学习 数据 节点 同步 功能 实战 均衡 事务 开头 文件 日志 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 科技平台互联网 科技互联网项目 厦门中拓互联网络科技有限公司 关于新基建和互联网科技 互联网科技公司做什么 开启互联网科技时代小说 天速互联网络科技有限公司 受益于互联网科技的高速发展 知域互联网科技有限公司大骗子 徐州市互联网科技有限公司 无锡工业互联网科技有限公司 怎样加入科技互联网 中天科技中国工业互联网 图游互联网科技 郑州欣桑互联网科技有限公司 南京一网一红互联网科技有限公司 吉林省码上互联网科技电话 现代互联网科技公司 互联网企业和网络科技有限公司 精品咖啡豆 互联网科技财经 阿里巴巴算科技企业还是互联网 金融科技与互联网金融相同和不同 黑科技闪耀互联网之光 崇明区互联网教育科技售后服务 呼和浩特新华互联网科技学院 伊宁互联网科技做什么的 米泉互联网科技专业怎么样 亚光科技低轨卫星互联网
0