接[上篇]Docker Compose搭建mysql主从复制,本文介绍如何搭建`mycat中间件`,并用`mycat`来作`读写分离`.mysql
配置文件以及文档地址:[mycat-rw](http://git.oschina.net/wangjingj/mycat-rw)git
docker 1.12.3sql
mysql5.7.17docker
deepin 15.3桌面版(这个没啥影响,由于咱们用docker)数据库
mycat1.6测试
看上篇文章的详细介绍ui
暴露`mysql` `mycat`端口号,方便管理spa
本文直接从`docker-compose.yml`开始.net
为了看起来方便,咱仍是一块儿都贴出来吧debug
这里只是说一个成功运行的配置,具体详细的配置规则请本身参考mycat权威指南.
schema.xml配置
server.xml配置
log4j2.xml配置
这个把日志级别更改成debug,方便咱们观察测试.
mycat的Dockerfile
在`docker-compose.yml`文件目录下运行
若是没有容器对应的镜像文件,则`docker-compose`会自动构建镜像.
使用`docker-compose`手动构建镜像的命令:`docker-compose build mycat`
命令成功执行,则容器mycat,m1,s1,s2都已经启动成功.
咱们用`docker ps -a`来看一下.
进入mycat客户端
执行select语句
由于在上一篇文章中已经作过主从复制的测试,因此这个地方咱们就再也不重复了,咱们直接执行`select`语句,看是否已经实现了读写分离.
结果集:
而后咱们打开mycat的日志mycat.log看一下
注意看图中标记出来的地方.
好吧,从日志中咱们看出咱们执行的`select`语句是走从库s1执行的.
执行insert语句
打开mycat的日志mycat.log看一下
此次咱们发现,执行`insert`语句走的是主库m1.
简单来说,一个使用`mycat中间件`搭建mysql 1主2从 主从复制 读写分离的实例就完成了.
要说为何使用`mycat数据库中间件`,很简单啊,就是由于它对开发人员基本没有影响,不会侵入到代码中.
支持请点赞,不喜请喷.
天天一点点,成长多一点.