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"

字段值与节点数的取模运算

  • 分片规则-一致性hashrule="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数据库中间件相关推荐

  1. Linux+MySQL+MyCat实现分库分表,通过MyCat数据库中间件实现分库分表配置实战

    目录 前言 Linux+MySQL+MyCat实现读写分离,主从同步的解决方案 一.Linux下MySQL数据库服务的安装与部署 二.下载Linux MyCat 三.上传Linux服务器,并解压 四. ...

  2. 原创 【ReactJs+springBoot项目——租房】第13章:MySQL主从复制+MyCat数据库中间件+HAProxy+PXC集群

    分析目前系统架构中的数据库层存在的问题 分析MySQL数据库的集群方案 学习主从复制(读写分离)架构方案 掌握MyCat数据库中间件的使用 掌握HAProxy复制均衡的使用 掌握PXC集群的使用 多种 ...

  3. mysql优化——mycat数据库中间件

    文章目录 目录 文章目录 前言 一.mycat原理 二.mycat完成读写分离 2.1搭建MySQL的主从模式 2.2实现读写分离 三.mycat垂直分库 四.水平分表 五.水平拆分表的连表操作 六. ...

  4. Mycat数据库中间件(史上最详细)

    单机数据库瓶颈: 1.磁盘空间上限 2.服务器性能上限 3.单点故障 数据库性能瓶颈 : 1.单表性能瓶颈 2.单库性能瓶颈 3.读写性能瓶颈 解决方案1:读写分离 1.MySQL读写分离能提高系统性 ...

  5. Mycat数据库中间件-入门

    1. MyCAT介绍 1.1. 什么是MyCAT? 简单的说,MyCAT就是: ·一个彻底开源的,面向企业应用开发的"大数据库集群" ·支持事务.ACID.可以替代Mysql的加强 ...

  6. MyCat —— 性能最好的数据库中间件

    课程介绍 1. MyCat简介 1.1 MyCat 引入 如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB.对数据的各种操作也是愈 加的困难,传统的关系性数据库已经无法满足快速查 ...

  7. 数据库中间件:Mycat 权威指南+Mycat 实战笔记,双管齐下

    前阵子复习了一下消息中间件MQ系列的知识点,忽然想起还有个数据库中间件--MyCat! Mycat 是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代 ...

  8. 数据库中间件MyCat学习总结(1)——MyCat入门简介

    为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代.如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷. MyCat的目标就是:低成本 ...

  9. 数据库中间件mycat

    介绍: 中国企业级的,开源数据库中间件 特点: 1 高性能的读写分离 读写分离: 在数据库集群中,主节点负责写,从节点负责读数据,能够满足系统对读的要求和次数较高的特点;一个分片进行读写分离的设置,可 ...

最新文章

  1. 果然,武汉驶上了AI高速路
  2. 每天一个linux命令(54):ping命令
  3. python中的return和print的区别_python中return和print的区别(详细)
  4. Arduino提高篇01—点亮OLED显示屏
  5. 苹果电脑入门:复制、粘贴、剪切文件
  6. stm32程序flash下载和sram运行
  7. python股票回测源码_股票量化交易回测框架pyalgotrade源码阅读(一)
  8. 网站分析基础概念之初访者
  9. 远程办公与人心、机制、工具
  10. Codeforces 1485D - Multiples and Power Differences (构造)
  11. TCP拥塞控制算法-从BIC到CUBIC
  12. 电商相关:SKU概念
  13. 使用eCharts做了一个中国地图的各地之间的线路连接
  14. 超级解霸, 远去的豪杰
  15. 保存HLS直播中的TS流分片
  16. 小程序开源项目库汇总
  17. 利用matlab绘制系统开环幅频渐进特性曲线(附详细注释)
  18. vue-cli生成的spa项目js、css、fonts、images文件路径找不到
  19. 计算机缓存加速网络,让电脑得到释放(清理缓存/磁盘)让你的网速提升
  20. c语言程序中如何加密密码,在C源代码中加密密码

热门文章

  1. python日历库_python下的一个好用的日历库,支持农历转公历,和公历转农历等功能...
  2. 探索挖掘数据的洪荒之力
  3. Axure RP Extension for Chrome安装注意问题
  4. HTML图片链接边框半透明,请教,下图登录页如何用css实现?半透明的边框怎么做?...
  5. android4.4 ssl版本查看,在Android 4.4中启用TLS 1.2
  6. 如何写CRM需求——客户服务管理篇
  7. hadoop生态圈面试精华之Hadoop基础
  8. 佛山日电服务器维修,11月3日在线维护公告
  9. 去哪儿网抢火车票方法
  10. 数据库三范式是什么?