Mycat(1)
https://www.jianshu.com/p/26513f428ecf
https://blog.csdn.net/fly910905/article/details/87101059
https://cloud.tencent.com/developer/article/1367290
http://www.mycat.io/
Mycat 下载地址,http://dl.mycat.io/1.6-RELEASE/
https://www.cnblogs.com/rangle/p/8176362.html
根据你的版本,我这边选择的是windows的,没有搞虚拟机去玩Linux;
然后开始运行这个Mycat服务,mycat我的感受就是一个虚拟的中间件,他会拦截你的sql,在你的SQL在begin之前帮我们做了很多规则的拆分;
下图是从其他地方贴过来的,大概这个是这么个意思;

比如你要做读写分离,当然还有其他解决方案,你要做水平拆分,或者垂直拆分,他会提供很多规则给你,可以结合自己的业务去看;
下面说下自己在整合的过程中遇到的问题,
首先介绍下myCat的几个目录一个bin,一个config,这两个目录没什么好说的,跟tomcat、redis等都是一样的;
在bin中启动,config配置你的各种策略;
bin中启动的时候一定要用管理者模式启动,直接windows+R启动的模式不是管理者模式,网上有截图

管理员启动的方式,参考百度经验:https://jingyan.baidu.com/article/ceb9fb10b53ab88cac2ba05b.html

上面这个是一种简单的方式,仅供大家参考;
打开的命令界面模式是下面这样的,蓝色的背景哦;

然后启动的日志的话就在logs里面,自己可以去看,在启动的过程中遇到问题的话可以通过日志去查看

下面说下自己遇到的坑:
这个mycat默认的端口是8066,如有端口被占用的话会一直起不来,你需要去杀掉相关进程后再启动;
conf中有3个配置文件一个schema.xml,rule.xml,server.xml
我根据自己的理解简单的说下这个3个文件是干啥的,先从简单的来,
rule.xml里面有格式各样的拆分规则,就是你需要把你的表按照什么规则去拆分,就像java中的一个工厂,里面有各种各样的规则,你要什么就配什么
server.xml就是你虚拟的Mycat服务的配置信息,在你项目中jdbc的数据源URL配置的就是这个里面的,包括用户名,密码,我们的应用第一步不是跟数据库直连,而是通过这个mycat代理
进行相应的路由再到具体的业务库;
schema.xml核心配置文件,这个里面需要配置你的表,拆分的业务数据库的信息;
下面贴图给大家看下我的实验结果,两个库,不是一个库中的两个实例,不然好像会有问题!
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="t_shark_user" primaryKey="id" dataNode="dn1,dn2" rule="rule1"/>
</schema>
<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
/> -->
<dataNode name="dn1" dataHost="localhost1" database="shark" />
<dataNode name="dn2" dataHost="localhost2" database="test" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="localhost:3306" user="root"
password="root"> </writeHost> </dataHost> <dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="xx.xx.xx.xx:3306" user="test"
password="test">
<!-- can have multi read hosts -->
<!--<readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" />-->
</writeHost>
<!--
<writeHost host="hostS1" url="localhost:3316" user="root"
password="123456" />
-->
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost> </mycat:schema>
我们在spring的XML直接配置成
url=jdbc:mysql://127.0.0.1:8066/TESTDB
password跟name都mycat的虚拟TESTDB,不是我们实际的数据库,

下面就OK,看效果了

按照ID进行拆分了,大概是这么个情况;

不过现在大多数人都不用Mycat,


shareingJDBC的方案好像是个趋势,感觉Mycat的是个黑盒,出了问题,都不好定位;未完待续
Mycat(1)的更多相关文章
- MyCat源码分析系列之——结果合并
更多MyCat源码分析,请戳MyCat源码分析系列 结果合并 在SQL下发流程和前后端验证流程中介绍过,通过用户验证的后端连接绑定的NIOHandler是MySQLConnectionHandler实 ...
- MyCat源码分析系列之——SQL下发
更多MyCat源码分析,请戳MyCat源码分析系列 SQL下发 SQL下发指的是MyCat将解析并改造完成的SQL语句依次发送至相应的MySQL节点(datanode)的过程,该执行过程由NonBlo ...
- MyCat源码分析系列之——BufferPool与缓存机制
更多MyCat源码分析,请戳MyCat源码分析系列 BufferPool MyCat的缓冲区采用的是java.nio.ByteBuffer,由BufferPool类统一管理,相关的设置在SystemC ...
- MyCat源码分析系列之——前后端验证
更多MyCat源码分析,请戳MyCat源码分析系列 MyCat前端验证 MyCat的前端验证指的是应用连接MyCat时进行的用户验证过程,如使用MySQL客户端时,$ mysql -uroot -pr ...
- MyCat源码分析系列之——配置信息和启动流程
更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...
- 开源分布式数据库中间件MyCat源码分析系列
MyCat是当下很火的开源分布式数据库中间件,特意花费了一些精力研究其实现方式与内部机制,在此针对某些较为重要的源码进行粗浅的分析,希望与感兴趣的朋友交流探讨. 本源码分析系列主要针对代码实现,配置. ...
- mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...
- 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我 ...
- mycat入门教程
github https://github.com/MyCATApache/Mycat-Server myCat介绍 myCat的诞生,要从其前身Amoeba和Cobar说起. Amoeba(变形虫) ...
- Mycat 全局系列号
标签:utf8 概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点. 配置 文件方式获取 1.修改server配置文件 vim server. ...
随机推荐
- meteor---在合并打包多个文件ZIP下载的功能
实现多个文件边打包边下载的功能,速度还可以,本人亲测,欢迎大家来指点archiver --用NPM安装这个模块---本人文件存储在file-collection 中,可以用fs : fs.create ...
- [Java SE] 字符串连接
Java 支持多种字符串连接方式,总结如下: package cn.spads.tool.string; import java.text.MessageFormat; /** * <b> ...
- Linux 驱动面试题总结【转】
本文转载自:http://zkread.com/article/872291.html 1. Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备. 字符 ...
- zkdash部署
1.拉取代码 #git clone https://github.com/ireaderlab/zkdash.git 2.安装依赖包 #cd zkdash #yum install -y python ...
- codeforces B. Convex Shape 解题报告
题目链接:http://codeforces.com/problemset/problem/275/B 题目内容:给出一个n * m 大小的grid,上面只有 black 和 white 两种颜色填充 ...
- PHP截取中英文混合字符
<?php //////////////////////////////////////////////////////////////////// // PHP截取中英文及标点符号混合的字符串 ...
- HDU-2255(KM算法)
HDU-2255 题目意思转化之后就是,给你一个二分图(也称 二部图) ,要求选择一些边让左边的点都对应左边的某一个点!该问题也叫做二分图最大匹配.所以可以用KM算法来做这道题.KM前提你要理解匈牙利 ...
- 并不对劲的BJOI2019
一些感想 现实并非游戏,并不支持反复刷关 猎人和防御工事一起被老山龙摧毁了: 猎人惨死雨中,结云村永无放晴之日: 猎人被狂龙病毒侵蚀,天空山上黑蚀龙泛滥. 好像这才是怪物猎人系列的真实结局呢 day ...
- 使用 WinSCP(下载) 上文件到 Linux图文教程
问题导读: 1.如何远程链接? 2.如何上传文件? 3.如何对立面的文件进行操作? 4.什么情况下会链接失败? https://yunpan.cn/cYWtNMycjeVPv 访问密码 4f7 ...
- BZOJ_2216_[Poi2011]Lightning Conductor_决策单调性
BZOJ_2216_[Poi2011]Lightning Conductor_决策单调性 Description 已知一个长度为n的序列a1,a2,...,an. 对于每个1<=i<=n, ...