天天看点

mycat基本概念和配置文件mycat

mycat

mycat的优势:

  • 实现后端数据库的读写分离和负载均衡
  • 支持写DB高可用,
  • 作用
    • 数据库进行垂直切分,
    • 进行水平切分
    • 控制数据库连接的数量
  • mycat 基本元素
    • 逻辑库:即后端切分后的数据库
    • 对应后端多个物理数据库
    • 逻辑库中不保存数据

逻辑表

  • 对应用来说相当于mysql的数据表
  • 逻辑表可对应后端多个物理数据库的表
  • 逻辑表中不保存数据

逻辑表的分类

  • 分片表和非分片表按是否被分片划分
  • 全局表,在所有分片中都存在的表
  • ER关系表,按照ER关系分片的表

安装注意事项

  • jdk必须在1.7及以上版本
  • 在conf里面,修改wrapper.conf中修改配置内存大小(在自己的虚拟机里面,这需要修改,不然内存不够用)

配置文件

  • server.xml:是服务之间的配,用户认证之类
  • schema.xml:就是逻辑表,逻辑库的配置
  • rule.xml:就是对分表分库的规则的配置
  • log4j2.xml:就是日志文件

server.xml

  • 配置系统参数
  • 配置用户访问权限
  • 配置sql防火墙和sql拦截功能
    mycat基本概念和配置文件mycat
    配置端口信息
    mycat基本概念和配置文件mycat
    基本的一些配置
  • 用户权限配置
  • mycat基本概念和配置文件mycat
  • 密码加密
    mycat基本概念和配置文件mycat
    执行命令之后,放入配置文件,并在配置上面加上
    mycat基本概念和配置文件mycat
  • 配置访问的数据库
    mycat基本概念和配置文件mycat
  • 配置访问的权限
    mycat基本概念和配置文件mycat
    1111 四位数表示新增,修改,查询和删除的权限,1表示有,0表示没有

log4j2.xml

  • 配置输出日志的格式
  • 配置输出日志的级别
    mycat基本概念和配置文件mycat
    • 配置讲解:
      • %d{yyyy-MM-dd HH:mm:ss:SSS}:表示日志的时间格式
      • %5p表示日志输出的级别
      • %t:线程信息
      • %m表示代码中提定的信息
      • %n 表示输出一个回车符号
    • 日志级别
      mycat基本概念和配置文件mycat

rule.xml

  • 配置水平分片的分片规则
  • 配置分片规则对应的分片函数
    mycat基本概念和配置文件mycat
  • 名字要唯一(全局唯一,最好是模块+表+分块数+分块依据)
    mycat基本概念和配置文件mycat
    mycat基本概念和配置文件mycat
  • 名字就是算法的名称,放在algorithm标签中

常用的分片算法

  • 简单取模:PartitionByMod
  • 哈希取模:PartitionByHash
  • 分片枚举:PartitionByFileMap
  • 字符串范围取模

简单取模

mycat基本概念和配置文件mycat
  • 可用于分片列为整数的表
  • 分片列mode分片基数
  • 类全名;io.mycat.route.function.PartitionByMod(不同版本class不同,找官方文档确认)

哈希取模:PartitionByHash

  • 可以用于多种数据类型,字符串,日期等
  • hash(分片列)mode分片基数
  • 类全名:io,mycat.route.function.PartitionByHash(不同版本class不同,找官方文档确认)

分片枚举:PartitionByFileMap

mycat基本概念和配置文件mycat
  • 根据可能的枚举值来指定数据存储的位置
  • $mycat/conf增加MapFile配置枚举值同节点的对应关系
  • 类全名:io,mycat.route.function.PartitionByFileMap(不同版本class不同,找官方文档确认)

字符串范围取模

  • 可以根据字符串前N个字符确认存储位置
  • $mycat/conf增加MapFile配置字符串取值范围和节点的关系
  • 类全名:io,mycat.route.function.PartitionByPrefixPatten(不同版本class不同,找官方文档确认)
mycat基本概念和配置文件mycat

schema.xml

  • 配置逻辑表和逻辑库
  • 配置逻辑表存储的数据节点
  • 配置数据节点对应的物理数据库服务器信息
    mycat基本概念和配置文件mycat
  • 配置逻辑库,name是逻辑库的命名,sqlMaxLimit是返回最大数据数,checkSQLschema检查发给mycat的语句中是否包含库名
    mycat基本概念和配置文件mycat
  • name是逻辑表的名称,primaryKey是逻辑表的主键,dataNode是表数据所存储的数据节点,rule是rule.xml中配置的分片规则
    mycat基本概念和配置文件mycat
  • name属性必须唯一,dataHost定义分片所在的物理主机
    mycat基本概念和配置文件mycat
    mycat基本概念和配置文件mycat
    mycat基本概念和配置文件mycat