springboot整合mycat实现分库分表

1:下载mycat

下载地址:http://dl.mycat.org.cn/

下载后将文件解压

springboot整合mycat实现分库分表_第1张图片
解压目录

2:提前创建数据库跟表

springboot整合mycat实现分库分表_第2张图片
数据库跟表

我这里先创建了三个库,每个库中的表都是一样的,准备条件做好之后,接下来修改myat的配置文件以达到分库的效果

3:修改主要配置文件

springboot整合mycat实现分库分表_第3张图片
conf目录下的配置文件

server.xml




    
    0 
    0
    1
    1
    0  
    0  
    300  
    1
        
    (?:(\s*next\s+value\s+for\s*MYCATSEQ_(\w+))(,|\)|\s)*)+
    false 
    io.mycat.route.sequence.handler.HttpIncrSequenceHandler
   
        
    0
        
        
    0
        
    
    0

    
        64k

    
      1k

    0

    
384m


    
    false

    false
        
    true
    
    0
    

    
        123456
        radar
        radar
        
        
        
        
    

    
        123456
        radar
        true
        radar
    



主要修改标签
name:连接mycat时的用户名
password:连接mycat时的密码
schemas:mycat逻辑库的名称

schema.xml





    
        
        
select user()

schema:
-- name:逻辑库名称,需要与server.xml中标签下的schemas对应
table:
--name:数据库中的表名
--dateNode: 分片的节点
--rule:分片规则 根据 id 进行十进制求模预算,相比固定分片 hash
dataNode:
--name:数据节点的名字(禁止重复,对应schema里的dataNode对应的名)
--dataHost:跟物理库对应的名称(datahost.name对应)
--database:物理数据库名(物理库中的真是数据库名称,我这里配置的就是之前提前创建好的三个库)
writeHost:
--name:自定义名称(对应dataNode里的dataHost)
--url:连接数据库地址
--name:连接数据库地址的用户名
--password:连接数据库地址的密码

rule.xml

rule.xml

里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule和function。

4:连接mycat

springboot整合mycat实现分库分表_第4张图片
远程连接mycat

连接成功,查看mycat

springboot整合mycat实现分库分表_第5张图片
mycat库

radar :我们在schema.xml中定义好的逻辑数据库名
student,t_respire: 我们在schema.xml中定义好的逻辑数据库中的表

5:springboot整合mycat

修改mysql连接地址,更换为mycat

springboot整合mycat实现分库分表_第6张图片
mysql配置

使用esaycode插件快速生成代码,这里直接略过

springboot整合mycat实现分库分表_第7张图片
接口

使用postman插入三条数据

springboot整合mycat实现分库分表_第8张图片
插入数据

插入三条id不同的数据,我这里已经插入了id={1,2,3}的数据,查看mycat与分片数据


springboot整合mycat实现分库分表_第9张图片
mycat库中的数据

查看三个分片数据库中的数据


springboot整合mycat实现分库分表_第10张图片
radar-01

springboot整合mycat实现分库分表_第11张图片
radar-02
springboot整合mycat实现分库分表_第12张图片
radar-03

这里mycat已经会根据我们所选择的分片策略自动将数据插入不同的库中

你可能感兴趣的:(springboot整合mycat实现分库分表)