在Linux系统上使用Mycat实现读写分离,基于MariaDB(Mysql)
接上篇博客:https://blog.****.net/SpringCYB/article/details/90205352
一:读写分离的思路
顾名思义,读写分离基本的原理是让主数据库处理事务性增、改、删操作,而从数据库处理查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
2.实现方式
实现方式有很多,但是不外乎分为内部配置和使用中间件,下面列举几个常用的方法:
1.配置多个数据源,根据业务需求访问不同的数据,指定对应的策略:增加,删除,修改操作访问对应数据,查询访问对应数据,不同数据库做好的数据一致性的处理。由于此方法相对易懂,简单,不做过多介绍。
2. 动态切换数据源,根据配置的文件,业务动态切换访问的数据库:此方案通过Spring的AOP,AspactJ来实现动态织入,通过编程继承实现Spring中的AbstractRoutingDataSource,来实现数据库访问的动态切换,不仅可以方便扩展,不影响现有程序,而且对于此功能的增删也比较容易。
3. 通过mycat来实现读写分离:使用mycat提供的读写分离功能,mycat连接多个数据库,数据源只需要连接mycat,对于开发人员而言他还是连接了一个数据库(实际是mysql的mycat中间件),而且也不需要根据不同业务来选择不同的库,这样就不会有多余的代码产生。
二:Mycat安装和配置
1.在master主服务下安装Java环境(mycat基于java)
通过 yum install java-1.8.0-openjdk.x86_64 命令安装
出现ok!则安装成功,中途需要点y的点y就好
2.下载mycat
通过 wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz 命令联网下载
3.解压 Mycat
通过 tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz 命令解压缩
4.剪切到/usr/local下
mv mycat /usr/local/
5.创建专门运行mycat账号
通过 adduser mycat 命令
6.切换到mycat文件夹路径下
通过 cd /usr/local 命令
7.将文件权限赋给mycat账号
通过 chown mycat:mycat -R mycat 命令
8.配置环境变量并添加
配置环境变量并添加 :export JAVA_HOME=/usr export MYCAT_HOME=/usr/local/mycat(如下图所示)
通过 vim /etc/profile 修改
通过 :wq!命令保存
9.刷新环境变量文件
通过 source /etc/profile 命令
10.切换mycat用户
命令:su mycat
11.切换目录
命令:cd /usr/local/mycat/bin/
12.启动mycat
命令:./mycat start
出现这句话则表示已经启动了,意思是,mycat已经再启动中。
三:配置Mycat的读写分离
1.Mycat的目录结构:
根目录 :
进到conf文件夹里面查看配置文件:
2.配置读写分离信息
进入配置文件 vi /usr/local/mycat/conf/schema.xml
4.配置Mycat的连接信息(账号密码)
进入配置文件 vi /usr/local/mycat/conf/server.xml
Mycat的配置到这里就算完成了,现在我们重启Mycat并连接测试
切换路径 cd /usr/local/mycat/bin
重启 ./mycat restart
项目开发中,我们只需要将mysql的连接地址换成mycat的地址即可,无需任何其余操作,更不会造成多余的业务逻辑,好了,mycat的简单配置和使用就介绍到这里了!
完成了!