一、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
三、配置MyCat动态数据源
SpringBoot项目整合动态数据源(读写分离)
1.配置多个数据源,根据业务需求访问不同的数据,指定对应的策略:增加,删除,修改操作访问对应数据,查询访问对应数据,不同数据库做好的数据一致性的处理。由于此方法相对易懂,简单,不做过多介绍。
2.动态切换数据源,根据配置的文件,业务动态切换访问的数据库:此方案通过Spring的AOP,AspactJ来实现动态织入,通过编程继承实现Spring中的AbstractRoutingDataSource,来实现数据库访问的动态切换,不仅可以方便扩展,不影响现有程序,而且对于此功能的增删也比较容易。
- 首先在项目中,有两个数据源,分别为读和写数据源
- 使用AOP技术拦截业务逻辑层方法的前缀,如果前缀为比如select、get、find等。
- 判断方法是否需要做读或者写的操作
- 如果是写的操作的时候,传递一个key给RoutingDataSource 指明使用写数据源
- 动态数据源环境配置
- 1.创建读和写的数据源
- 2.将读和写的数据源注册到RoutingDataSource
- 3.使用AOP拦截业务逻辑层方法,判断方法前缀是否需要做读或者写
3.通过mycat来实现读写分离:使用mycat提供的读写分离功能,mycat连接多个数据库,数据源只需要连接mycat,对于开发人员而言他还是连接了一个数据库(实际是mysql的mycat中间件),而且也不需要根据不同业务来选择不同的库,这样就不会有多余的代码产生。
实际是mysql的mycat中间件),而且也不需要根据不同业务来选择不同的库,这样就不会有多余的代码产生。
github地址:项目源码 + mycat配置 + sql
https:///chenruoyu0319/mycat-dynamicDataSource.git