当前位置:   article > 正文

mysql mycat docker_Docker Compose搭建mycat读写分离

docker-compose安装mycat

说明

接[上篇]Docker Compose搭建mysql主从复制,本文介绍如何搭建`mycat中间件`,并用`mycat`来做`读写分离`.

配置文件以及文档地址:[mycat-rw](http://git.oschina.net/wangjingj/mycat-rw)

系统环境

docker 1.12.3

mysql5.7.17

deepin 15.3桌面版(这个没啥影响,因为我们用docker)

mycat1.6

要点说明

看上篇文章的详细介绍

暴露`mysql` `mycat`端口号,方便管理

本文直接从`docker-compose.yml`开始

docker-compose.yml文件

为了看起来方便,咱还是一起都贴出来吧

a91c7f846a8053bf54c8191015c3a413.png

de5542de6dc81ace7effb90af3c085a6.png

7f626ecff403f8ba4d687a6b2104cec8.png

46ba8cc62a1581c89a47eb4961618363.png

mycat 配置

这里只是说一个成功运行的配置,具体详细的配置规则请自己参考mycat权威指南.

schema.xml配置

63ace9ce015628e8791038f8bf003c64.png

server.xml配置

d5b6b57483014c036f723a243ca0fbcd.png

4cb908cb1af6ba4548e7d3734deec455.png

5478e53296f1193b6b59cf4db4cb0d1c.png

log4j2.xml配置

这个把日志级别更改为debug,方便我们观察测试.

mycat的Dockerfile

32c1fe84ee874d68799ce40c45ee0fb2.png

启动

在`docker-compose.yml`文件目录下运行

4b1b2b17217fbc416d2d0153802b71a0.png

如果没有容器对应的镜像文件,则`docker-compose`会自动构建镜像.

使用`docker-compose`手动构建镜像的命令:`docker-compose build mycat`

命令成功执行,则容器mycat,m1,s1,s2都已经启动成功.

我们用`docker ps -a`来看一下.

4e6048767842a497a61a1f60742f3a9c.png

测试

进入mycat客户端

44dd1c7716ac33e98eba2c4d224197e7.png

执行select语句

因为在上一篇文章中已经做过主从复制的测试,所以这个地方我们就不再重复了,我们直接执行`select`语句,看是否已经实现了读写分离.

6d410c30c0127d61cf63d770606e07e1.png

结果集:

3fe6d514a4b0aadba91f9472e2b13e97.png

然后我们打开mycat的日志mycat.log看一下

043ddde40824d3b247072c23a016adca.png

注意看图中标记出来的地方.

好吧,从日志中我们看出我们执行的`select`语句是走从库s1执行的.

执行insert语句

02d2f105e7435c1ae226e2641bec2638.png

打开mycat的日志mycat.log看一下

a5f4e26e51eb0eced74625b5597eb09d.png

这次我们发现,执行`insert`语句走的是主库m1.

总结

简单来讲,一个使用`mycat中间件`搭建mysql 1主2从 主从复制 读写分离的实例就完成了.

要说为什么使用`mycat数据库中间件`,很简单啊,就是因为它对开发人员基本没有影响,不会侵入到代码中.

支持请点赞,不喜请喷.

每天一点点,成长多一点.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/817204
推荐阅读
相关标签
  

闽ICP备14008679号