Docker版:Mysql分库分表MyCat实战
⼀、MyCat简单认识。
  认识MyCat之前怎么先来认识下,Cober是由阿⾥巴巴开源的mysql分布式处理中间件,可以在分布式的环境下像传统数据库⼀样提供海量的数据服务。⽽MyCat的前⾝是阿⾥的cober,Mycat使⽤ NIO 重构了⽹络模块,并且优化了 Buffer内核,增强了聚合,Join 等基本特性,同时MyCat兼容绝⼤多数数据库成为通⽤的数据库中间件。
  Mycat 是⼀个强⼤的数据库中间件,不仅仅可以⽤作读写分离、以及分表分库、容灾备份,⽽且可以⽤于多租户应⽤开发、云平台基础设施、让你的架构具备很强的适应性和灵活性,借助于即将发布的 Mycat 智能优化模块,系统的数据访问瓶颈和热点⼀⽬了然,根据这些统计分析数据,你可以⾃动或⼿⼯调整后端存储,将不同的表映射到不同存储引擎上,⽽整个应⽤的代码⼀⾏也不⽤改变。
  当前是个⼤数据的时代,但究竟怎样规模的数据适合数据库系统呢?对此,国外有⼀个数据库领域的权威⼈⼠说了⼀个结论:千亿以下的数据规模仍然是数据库领域的专长,⽽ Hadoop 等这种系统,更适合的是千亿以上的规模。所以,Mycat 适合 1000 亿条以下的单表规模,如果你的数据超过了这个规模,请投靠 Mycat Plus 吧!
  Mycat 的原理中最重要的⼀个动词是“拦截”,它拦截了⽤户发送过来的 SQL 语句,⾸先对 SQL 语句做了⼀些特定的分析:如分⽚分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给⽤户。官⽅例⼦如下:
Mycat ⽬前适⽤的场景已经很丰富,⽽且不断有新⽤户给出新的创新性的⽅案,以下是⼏个典型的应⽤场景:
  • 单纯的读写分离,此时配置最为简单,⽀持读写分离,主从切换;
  • 分表分库,对于超过 1000 万的表进⾏分⽚,最⼤⽀持 1000 亿的单表分⽚;
  • 多租户应⽤,每个应⽤⼀个库,但应⽤程序只连接 Mycat,从⽽不改造程序本⾝,实现多租户化;
  • 报表系统,借助于 Mycat 的分表能⼒,处理⼤规模报表的统计;
  • 替代 Hbase,分析⼤数据;
  • 作为海量数据实时查询的⼀种简单有效⽅案,⽐如 100 亿条频繁查询的记录需要在 3 秒内查询出来结果,除了基于主键的查询,还可能存在范围查询或其他属性查询,此时 Mycat 可能是最简单有效的选择。
⼆、MyCat安装使⽤
1、创建本地到MyCat的映射⽂件夹
mkdir -p /root/mycat/logs /root/mycat/conf
2、下载MyCat的源⽂件包,、。
wget  dl.mycat.io/1.6-RELEASE/Mycat-server-1.
mv Mycat-server-1. 
wegt如果出现wget: unable to resolve host address ‘dl.mycat.io’异常,可以选择修改/etc/hosts⽂件,添加 dl.mycat.io  210.51.26.184配置
3、解压缩、并复制配置本地conf中的⽂件
tar -zxvf
cp -r mycat/conf/* /root/mycat/conf/
重点关注三个配置⽂件:
 l :定义逻辑库、表、分⽚节点等配置。
  l :定义分⽚规则,⽔平拆分的规则都在这⾥定义。
  l :定义⽤户以及系统相关变量,例如端⼝、⽤户登录账号密码、⽤户权限等。如下图:
编辑l等配置⽂件参考:
4、在当前⽬录创建Dockerfile⽂件
touch Dockerfile
vim Dockerfile
在Dockerfile⽂件中插⼊如下⽂件
#基于opjdk8创建镜像,可⾃⾏替换centos等
FROM openjdk:8
ADD /usr/local/
VOLUME /usr/local/mycat/conf
ENV MYCAT_HOME=/usr/local/mycat
EXPOSE 80669066
CMD ["/usr/local/mycat/bin/mycat", "console","&"]
### 说明 ###
#将mycat解压到/usr/local⽬录中,得到 /usr/local/mycat
#将mycat的配置⽂件的地址暴露出映射地址,启动时直接映射宿主机的⽂件夹
#设置MYCAT_HOME
#暴露出MyCat的所需端⼝
#以前台进程的⽅式启动MyCat服务
5、构建镜像并启动
docker build -t mycat-1.6 .
mysql社区版国内镜像下载
6、运⾏启动容器
docker run --name mycat -p 8066:8066 -p 9066:9066 -v /root/mycat/conf:/usr/local/mycat/conf -v /root/mycat/logs:/usr/local/mycat/logs -d mycat-1.6 7、验证:
登录mycat 容器根据配置的⽤户名密码进⾏登录使⽤,进⾏操作数据库查看logs操作⽇志即可。
mysql -uroot -p123456 -h172.17.0.5 -P8066
mysql 5.8以上版本有问题可以参考:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。