mycat

作者: agang_19 | 来源:发表于2020-07-18 20:02 被阅读0次

    mycat查看日志

    修改vim conf/log4j2.xml ,调试的时候修改level debug,可以查看详细信息;日志配置文件默认mycat一分钟加载一次,所以修改完不用重启mycat

    <Configuration status="WARN">
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d [%-5p][%t] %m %throwable{full} (%C:%F:%L) %n"/>
            </Console>
    
            <RollingFile name="RollingFile" fileName="${sys:MYCAT_HOME}/logs/mycat.log"
                         filePattern="${sys:MYCAT_HOME}/logs/$${date:yyyy-MM}/mycat-%d{MM-dd}-%i.log.gz">
            <PatternLayout>
                    <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] (%l) - %m%n</Pattern>
                </PatternLayout>
                <Policies>
                    <OnStartupTriggeringPolicy/>
                    <SizeBasedTriggeringPolicy size="250 MB"/>
                    <TimeBasedTriggeringPolicy/>
                </Policies>
            </RollingFile>
        </Appenders>
        <Loggers>
            <!--<AsyncLogger name="io.mycat" level="info" includeLocation="true" additivity="false">-->
                <!--<AppenderRef ref="Console"/>-->
                <!--<AppenderRef ref="RollingFile"/>-->
            <!--</AsyncLogger>-->
    //调试的时候修改level debug,可以查看详细信息;日志配置文件默认mycat一分钟加载一次,所以修改完不用重启mycat
            <asyncRoot level="debug" includeLocation="true">
    
                <!--<AppenderRef ref="Console" />-->
                <AppenderRef ref="RollingFile"/>
    
            </asyncRoot>
        </Loggers>
    </Configuration>
    
    

    命令行查看监控
    mysql -h 127.0.0.1 -u zl_mycat -P 9066 -p


    image.png image.png
    image.png

    mycat分表

    全局表
    er

    分片枚举

    通过在配置文件中配置可能的枚举 id,自己配置分片,本规则适用于特定的场景,比如有些业务需要按照省份或区县来做保存,而全国省份区县固定的

    CREATE TABLE database1.`sharding-by-intfile` (
      `database` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
      `user_id` int DEFAULT NULL,
      `location` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
    
    CREATE TABLE database2.`sharding-by-intfile` (
      `database` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
      `user_id` int DEFAULT NULL,
      `location` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
    
    CREATE TABLE database3.`sharding-by-intfile` (
      `database` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
      `user_id` int DEFAULT NULL,
      `location` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
    
    

    conf/rule.xml

            <tableRule name="sharding-by-intfile">  
                    <rule>
                            <columns>location</columns>    //分片字段
                            <algorithm>hash-int</algorithm>   //分片函数
                    </rule>
            </tableRule>
    
            <function name="hash-int"
                    class="io.mycat.route.function.PartitionByFileMap">  
                    <property name="mapFile">partition-hash-int.txt</property> //配置文件名称
                    <property name="type">1</property> //   默认值为 0,0 表示 Integer,非零表示 String
                    <property name="defaultNode">2</property> //默认分片节点,匹配不到的时候分配到这个节点
            </function>
    

    vim conf/partition-hash-int.txt

    fuzhou=0
    shanghai=1
    beijing=2
    
    

    报错是由于mycat的分片类型,int类型或string字段串类型,设置错误,刚开始配置rule.xml中type为0,但是插入数据为字符串

    image.png

    实验,插入数据,同时进行查询,查看是否正确分片


    image.png

    相关文章

      网友评论

          本文标题:mycat

          本文链接:https://www.haomeiwen.com/subject/quvacktx.html