一、Linux环境安装、配置MyCat

1、上传安装Mycat-server-1.6.5-release-20180122220033-linux.tar.gz

2、解压安装包tar –zxvf

3、配置schema.xml和server.xml

4、客户端连接端口号: 8066

配置文件介绍:

文件

说明

server.xml

Mycat的配置文件,设置账号、参数等

schema.xml

Mycat对应的物理数据库和数据库表的配置

rule.xml

Mycat分片(分库分表)规则

二、启动、关闭MyCat

1、进入bin目录

启动MyCat ./mycat start

停止MyCat./mycat stop

2、查看/usr/local/mycat/logs wrapper.log日志 如果是为successfully 则启动成功

关闭防火墙: systemctl stop firewalld.service

只可读的账号 user user 端口号8066

可读可写的账号 root 123456 端口号8066

ShardingSphere springboot2 读写分离 springboot mycat读写分离_xml

三、配置MyCat动态数据源

SpringBoot项目整合动态数据源(读写分离)

1.配置多个数据源,根据业务需求访问不同的数据,指定对应的策略:增加,删除,修改操作访问对应数据,查询访问对应数据,不同数据库做好的数据一致性的处理。由于此方法相对易懂,简单,不做过多介绍。

2.动态切换数据源,根据配置的文件,业务动态切换访问的数据库:此方案通过Spring的AOP,AspactJ来实现动态织入,通过编程继承实现Spring中的AbstractRoutingDataSource,来实现数据库访问的动态切换,不仅可以方便扩展,不影响现有程序,而且对于此功能的增删也比较容易。

  • 首先在项目中,有两个数据源,分别为读和写数据源
  • 使用AOP技术拦截业务逻辑层方法的前缀,如果前缀为比如select、get、find等。
  • 判断方法是否需要做读或者写的操作
  • 如果是写的操作的时候,传递一个key给RoutingDataSource 指明使用写数据源

ShardingSphere springboot2 读写分离 springboot mycat读写分离_数据源_02

  • 动态数据源环境配置
  • 1.创建读和写的数据源
  • 2.将读和写的数据源注册到RoutingDataSource
  • 3.使用AOP拦截业务逻辑层方法,判断方法前缀是否需要做读或者写

3.通过mycat来实现读写分离:使用mycat提供的读写分离功能,mycat连接多个数据库,数据源只需要连接mycat,对于开发人员而言他还是连接了一个数据库(实际是mysql的mycat中间件),而且也不需要根据不同业务来选择不同的库,这样就不会有多余的代码产生。

实际是mysql的mycat中间件),而且也不需要根据不同业务来选择不同的库,这样就不会有多余的代码产生。

github地址:项目源码 + mycat配置 + sql
https:///chenruoyu0319/mycat-dynamicDataSource.git