MyCat数据库中间件
MyCat数据库中间件
文章目录
- MyCat数据库中间件
- 1、MyCat
- 1.1 入门配置
- 1.2 垂直分库
- 1.3 水平分表
- 1.4 分片规则
- 2、Mycat的管理和监控
- 3、读写分离
1、MyCat
概述
mycat是开源的、活跃的、基于java语言编写的MySQL 数据库中间件。可以像使用mysql一样来使用mycat
优势: 性能可靠稳定
mycat下载官网: http://dl.mycat.org.cn/
- mycat: 数据库分库分表的中间件,不用调整代码即可实现分库分表,支持多种语言。
- shardingJDBC: 数据库分库分表的中间件,基于AOP编程,只支持java语言,性能高。
1.1 入门配置
分片配置 【schema.xml】
配置分片,逻辑表逻辑库
schema.xml作为mycat最重要的配置文件之一,涵盖了mycat的逻辑库、逻辑表、分片规则、分片节点及数据源的配置
- schema标签:逻辑库
<!--逻辑库的配置--><schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100"><!--逻辑表的配置--><table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /></schema>
- datanode标签:分片节点
<!--分片节点--><dataNode name="dn1" dataHost="localhost1" database="db1" /><dataNode name="dn2" dataHost="localhost1" database="db2" /><dataNode name="dn3" dataHost="localhost1" database="db3" />
- datahost标签:节点数据库
<!--分片节点的数据库--><dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat><writeHost host="hostM1" url="localhost:3306" user="root" password="123456"><readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" /></writeHost></dataHost>
balance: 负载均衡 writeType: 写操作分发方式 dbDriver: 数据库驱动 支持native、jdbc
服务配置 【server.xml】
配置,登录的用户可以操作的逻辑库,即授权
启动测试
mycat start #启动 占用端口号:8066
mycat stop #停止
查看日志看mycat是否启动成功
tail -f logs/wrapper.log
1.2 垂直分库
字典表中,在多个业务模块中都可能会用到,可以将其设置为全局表,利于业务操作
< table > 标签中加上 type="global" 属性 < table type="global" >
1.3 水平分表
1.4 分片规则
在水平分表时,会存在数据库的节点分配问题,这时就需要一定的分片的规则,根据指定字段及其配置的范围与数据节点的对应情况,来决定该数据属于哪一个分片 【rule.xml】
一般情况一个rule 对应一个**< tableRule >,一个< tableRule >** 对应一个**< function >** ,一个**< function >** 对应一个txt文件
- **分片规则-范围 ** 【
rule="auto-sharding-long"
】
根据字段的值在哪个节点的范围
- 分片规则-取模 【
rule="mod-long"
】
字段值与节点数的取模运算
- 分片规则-一致性hash 【
rule="sharding-by-murmur"
】
相同的哈希因子计算值被划分到相同的分区表中,不会因为分区节点的增加而改变分区的位置
注意:字段值必须为数字类型
- 分片规则-枚举 【
rule="sharding-by-intfile"
】
指定数据放在指定节点
- 分片规则-应用指定 【
rule="sharding-by-substring"
】
运行阶段应用自主决定路由到哪个分片,直接根据字符串截取,但截取的必须为数字
- 分片规则-固定分片hash算法 【
rule="sharding-by-long-hash"
】
id的低10位与10个1作&运算,得到结果转为十进制,在哪个范围就在哪个分片中 【可实现均匀分配也可非均匀】
注意:字段值必须为数字类型
- 分片规则-字符串hash解析 【
rule="sharding-by-shardinghash"
】
截取字符串中指定位置上的子字符串,进行hash算法,算出分片
- 分片规则-按日期分片 【
rule="sharding-by-date"
】
指定日期分片
- 分片规则-按月份分片 【
rule="sharding-by-month"
】
按月份分片
2、Mycat的管理和监控
mycat的运行原理
mycat的管理
mycat默认开通2个端口,可以在 server.xml 中进行配置:
- 8066 数据访问端口,进行DML和DDL操作。
- 9066 数据管理端口,即mycat服务管理控制功能,用于管理mycat的整个集群状态。
mysql -h ip地址 -P 9066 -uroot -p123456
查看mycat提供的管理命令:show @@help
mycat监控 【mycat-eye】
- mycat-web(mycat-eye) 是对mycat-server提供监控服务,功能不局限于对mycat-server使用。通过JDBC连接对mycat、mysql监控,监控远程服务器。
- mycat-web运行过程中需要依赖zookeeper注册中心,所以需要先安装zookeeper。
- zookeeper官网:https://zookeeper.apache.org
- mycat-web官网:http://dl.mycat.org.cn/mycat-web-1.0/
- 启动zookeeper,在端口2181运行,再启动mycat-web 【mycat-web的配置文件已经关联了zookeeper------->
WEB-INF/classes/mycat.properties
】 - 访问:地址+端口+mycat 就会进入监控页面
3、读写分离
概念 【主从复制上面有】
读写分离,将数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,就可以减轻·数据库的压力,mycat可以实现该功能。
(一)一主一从
balance参数说明:
参数值 | 含义 |
---|---|
0 | 不开启读取分离 |
1 | 全部readhost与备用writehost都参与select语句的负载均衡 |
2 | 随机分发 |
3 | writehost不承担读压力 |
(二)双主双从
有备用的主机,当某个主机宕机为了防止写服务停滞,加一个备用主机提高高可用性
双主双从搭建过程:先搭建两组一组一从,在将两个主库相互复制配置
注意:备用主机开始时也就相当于从机,也要登录到刚开始主库。
配置:
参数说明:
- balance=“1” : 负载均衡策略
- writetype=“0”:指定刚开始的时的主库节点
- switchtype=“1”:开启自动切换主库,当主机宕机时
qiumin
MyCat数据库中间件相关推荐
- Linux+MySQL+MyCat实现分库分表,通过MyCat数据库中间件实现分库分表配置实战
目录 前言 Linux+MySQL+MyCat实现读写分离,主从同步的解决方案 一.Linux下MySQL数据库服务的安装与部署 二.下载Linux MyCat 三.上传Linux服务器,并解压 四. ...
- 原创 【ReactJs+springBoot项目——租房】第13章:MySQL主从复制+MyCat数据库中间件+HAProxy+PXC集群
分析目前系统架构中的数据库层存在的问题 分析MySQL数据库的集群方案 学习主从复制(读写分离)架构方案 掌握MyCat数据库中间件的使用 掌握HAProxy复制均衡的使用 掌握PXC集群的使用 多种 ...
- mysql优化——mycat数据库中间件
文章目录 目录 文章目录 前言 一.mycat原理 二.mycat完成读写分离 2.1搭建MySQL的主从模式 2.2实现读写分离 三.mycat垂直分库 四.水平分表 五.水平拆分表的连表操作 六. ...
- Mycat数据库中间件(史上最详细)
单机数据库瓶颈: 1.磁盘空间上限 2.服务器性能上限 3.单点故障 数据库性能瓶颈 : 1.单表性能瓶颈 2.单库性能瓶颈 3.读写性能瓶颈 解决方案1:读写分离 1.MySQL读写分离能提高系统性 ...
- Mycat数据库中间件-入门
1. MyCAT介绍 1.1. 什么是MyCAT? 简单的说,MyCAT就是: ·一个彻底开源的,面向企业应用开发的"大数据库集群" ·支持事务.ACID.可以替代Mysql的加强 ...
- MyCat —— 性能最好的数据库中间件
课程介绍 1. MyCat简介 1.1 MyCat 引入 如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB.对数据的各种操作也是愈 加的困难,传统的关系性数据库已经无法满足快速查 ...
- 数据库中间件:Mycat 权威指南+Mycat 实战笔记,双管齐下
前阵子复习了一下消息中间件MQ系列的知识点,忽然想起还有个数据库中间件--MyCat! Mycat 是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代 ...
- 数据库中间件MyCat学习总结(1)——MyCat入门简介
为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代.如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷. MyCat的目标就是:低成本 ...
- 数据库中间件mycat
介绍: 中国企业级的,开源数据库中间件 特点: 1 高性能的读写分离 读写分离: 在数据库集群中,主节点负责写,从节点负责读数据,能够满足系统对读的要求和次数较高的特点;一个分片进行读写分离的设置,可 ...
最新文章
- 果然,武汉驶上了AI高速路
- 每天一个linux命令(54):ping命令
- python中的return和print的区别_python中return和print的区别(详细)
- Arduino提高篇01—点亮OLED显示屏
- 苹果电脑入门:复制、粘贴、剪切文件
- stm32程序flash下载和sram运行
- python股票回测源码_股票量化交易回测框架pyalgotrade源码阅读(一)
- 网站分析基础概念之初访者
- 远程办公与人心、机制、工具
- Codeforces 1485D - Multiples and Power Differences (构造)
- TCP拥塞控制算法-从BIC到CUBIC
- 电商相关:SKU概念
- 使用eCharts做了一个中国地图的各地之间的线路连接
- 超级解霸, 远去的豪杰
- 保存HLS直播中的TS流分片
- 小程序开源项目库汇总
- 利用matlab绘制系统开环幅频渐进特性曲线(附详细注释)
- vue-cli生成的spa项目js、css、fonts、images文件路径找不到
- 计算机缓存加速网络,让电脑得到释放(清理缓存/磁盘)让你的网速提升
- c语言程序中如何加密密码,在C源代码中加密密码
热门文章
- python日历库_python下的一个好用的日历库,支持农历转公历,和公历转农历等功能...
- 探索挖掘数据的洪荒之力
- Axure RP Extension for Chrome安装注意问题
- HTML图片链接边框半透明,请教,下图登录页如何用css实现?半透明的边框怎么做?...
- android4.4 ssl版本查看,在Android 4.4中启用TLS 1.2
- 如何写CRM需求——客户服务管理篇
- hadoop生态圈面试精华之Hadoop基础
- 佛山日电服务器维修,11月3日在线维护公告
- 去哪儿网抢火车票方法
- 数据库三范式是什么?