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