Mycat 配置概述

核心配置文件

1.server.xml

作用:

  • 配置mycat系统性参数 ( 标签)
  • 配置用户以及访问权限 ( 标签)
  • 配置sql防火墙以及sql拦截功能

常用完整属性配,常用的mysql系统的完整配置

     
        8066
         
        9066 
        
        0
        0.0.0.0 
        
        4096
        utf8
    
        
        3
    
        
        8
        
        1800000
        
        300
        
        0
        
        0
        2
        
        100
        
        104857600
    

    
                    123456
                    TESTDB,TESTDB2,TESTDB3
    
                    
                    
    

    
        user
        user
        
        0
        TESTDB,TESTDB1,TESTDB2
        
        false 
            
            
                
  • dml 总的数字代表: 0110 -> insert,update,select,detele 0代表不具有此权限,1代表有次权限
  • 用户密码加密配置
    java -cp Mycat-server-1.6.5-release.jar 0:root:123456 (0:前端加密标志 root:用户名 123456:密码)
    配置:对应的user标签 1

2.rule.xml

作用
配置分片规则

分片表的配置规则


  
    id
    hash–mode–2
  

  • columns 分片列
  • algorithm 分片算法

配置表的分片算法

    
        2
    
常用分片算法
  • 简单取模分片算法 PartitionByMod

    场景:分片列是整型,使用这种取模算法

    image


    例子

    
        student_id
        partition-mod-2
    


    2

  • 哈希取模 PartitionByHashMod
    场景:分片列适合所有类型

    注意:如果hash一致的过多,可能会使某个分片数据库数据过多。

    例子

    
        student_id
        partition-hash-mod-2
    


    2

  • 分片枚举算法 PartitionByFileMap
    场景: 根据有限个枚举类型进行分片
    
        
            school_id
            hash-int
        
    
    
        partition-hash-int.txt
        0
        0
    
  1. property name="type" 定义枚举值类型,0代表整数类型,非0表示字符串
  2. name="defaultNode" 是否使用默认节点,<0 : 不起用默认节点, >=0 表示启用默认节点
  3. 相应的配置文件,需要放在$MYCAT_HOME/conf 目录下
  4. 枚举值可以指定数据的存储位置
  • 字符串范围取模分片算法

    截取某个字符串的一部分,作为分片的依据

    算法:截取字符串的某一段,然后assic码相加,然后和取模基数进行取模计算。
    
        128 
        2  
        prefix-partition-pattern.txt
    
  1. prefix-partition-pattern.txt 记录了 对应的取模范围和后端节点的对应关系
  2. 可以根据指定字符串的前N个字符确定存储位置

3.schema.xml

用途
配置逻辑库和逻辑表
配置逻辑表所存储的数据节点
配置数据节点所对应的数据库服务器信息

  • 逻辑库的定义
    
  1. sqlMaxLimit 当前逻辑库默认返回的最大行数 , -1 时表示不限制
  2. checkSQLschema 是否检查sql中含有库名称 ,true :检查并删除库名 , false :不检查
  • 逻辑表定义
    
  1. name 逻辑表名 (逻辑表必须对应着物理表)
  2. primeryKey 主键
  3. dataNode : 存储的实际的物理节点
  4. rule 引用分片规则
  • dataNode 标签
    
  1. name : 定义dataNode 的值
  2. dataHost mysql 集群的地址
  3. database 物理数据库的名称
  • dataHost 标签
    
        select user()
        
            
        
        
    

dataHost属性

  1. name 组服务器名称,dataNode 标签引用的依据,mycat中唯一
  2. maxCon , minCon 定义 最大连接数 ,最小连接数
  3. banlance 工作方式,取值
    • balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
    • balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双
      主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载
      均衡。
    • balance="2",所有读操作都随机的在 writeHost、readhost 上分发。
    • balance="3",所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,
      注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。
  4. writeType 负载均衡类型
    • writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个 writeHost,
      重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .
    • writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。
  5. switchType 是否自动切换写数据库
    • -1 表示不自动切换。
    • 1 默认值,自动切换。
    • 2 基于 MySQL 主从同步的状态决定是否切换。
  6. heartbeat 标签,检测心跳
  7. writeHost 标签,指定写实例
  8. readHost 标签,指定读实例
  • schema.xml 完整标签示例




    
        
        
select user()

你可能感兴趣的:(Mycat 配置概述)