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)的更多相关文章

  1. MyCat源码分析系列之——结果合并

    更多MyCat源码分析,请戳MyCat源码分析系列 结果合并 在SQL下发流程和前后端验证流程中介绍过,通过用户验证的后端连接绑定的NIOHandler是MySQLConnectionHandler实 ...

  2. MyCat源码分析系列之——SQL下发

    更多MyCat源码分析,请戳MyCat源码分析系列 SQL下发 SQL下发指的是MyCat将解析并改造完成的SQL语句依次发送至相应的MySQL节点(datanode)的过程,该执行过程由NonBlo ...

  3. MyCat源码分析系列之——BufferPool与缓存机制

    更多MyCat源码分析,请戳MyCat源码分析系列 BufferPool MyCat的缓冲区采用的是java.nio.ByteBuffer,由BufferPool类统一管理,相关的设置在SystemC ...

  4. MyCat源码分析系列之——前后端验证

    更多MyCat源码分析,请戳MyCat源码分析系列 MyCat前端验证 MyCat的前端验证指的是应用连接MyCat时进行的用户验证过程,如使用MySQL客户端时,$ mysql -uroot -pr ...

  5. MyCat源码分析系列之——配置信息和启动流程

    更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...

  6. 开源分布式数据库中间件MyCat源码分析系列

    MyCat是当下很火的开源分布式数据库中间件,特意花费了一些精力研究其实现方式与内部机制,在此针对某些较为重要的源码进行粗浅的分析,希望与感兴趣的朋友交流探讨. 本源码分析系列主要针对代码实现,配置. ...

  7. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  8. 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我 ...

  9. mycat入门教程

    github https://github.com/MyCATApache/Mycat-Server myCat介绍 myCat的诞生,要从其前身Amoeba和Cobar说起. Amoeba(变形虫) ...

  10. Mycat 全局系列号

    标签:utf8 概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点. 配置 文件方式获取 1.修改server配置文件 vim server. ...

随机推荐

  1. smod包含具体的增强(具体实施对象) / CMOD 包含一组smod编写的增强

    从标题来看,CMOD 是树木,smod 是树枝. 1.1 SMOD包含具体的增强,而CMOD是包含一组SMOD编写的增强. 1.2 User exits (Function module exits) ...

  2. uni-app 创建的第一个应用

    本人微信公众号:前端修炼之路,欢迎关注 背景介绍 经过上一篇文章uni-app官方教程学习手记的学习之后,我就着手做这个项目了. 目前已经初步搭出了整体的框架,秉着取之于社会,回馈于社会的原则,我将这 ...

  3. SAM初步

    SAM(Suffix Automaton),后缀自动机. SAM是种十分神奇的数据结构,我认为他的主要神奇之处,在于最大限度的利用了分类思想. SAM上有两种边,代表两种转移方式. 一种是树边,一种是 ...

  4. RobotFramework教程使用笔记——Selenium2Library库

    selenium之前已经学习介绍过了,它是一个支持多语言.多平台.多浏览器的web自动化测试框架,在robotframework中也可以导入selenium库来进行web自动化测试.它使用seleni ...

  5. 阿里云数据库产品HybridDB简介——OLAP数据库,支持行列混合存储,基于数据库Greenplum的开源版本,并且吸收PostgreSQL精髓

    为什么会有HybridDB的诞生?它经历了怎样的研发历程?它的应用场景和情况是怎样的?带着这些问题,InfoQ对阿里云的数据库专家兼Postgres中国社区/中国用户会主席萧少聪先生进行了采访,以下文 ...

  6. SPOJ Find the max XOR value(二进制,贪心即可)

    You have two integers L and R, and you are required to find the max xor value of a and b where L < ...

  7. shell之sort和uniq 及wc 的使用

    文本排序:sort       -n:数值排序       -r: 降序       -t: 字段分隔符       -k: 以哪个字段为关键字进行排序       -u: 排序后相同的行只显示一次 ...

  8. Preface Numbering

    链接 分析:先打表需要用到的罗马数字,然后暴力转换,最后统计一下即可 /* PROB:preface ID:wanghan LANG:C++ */ #include "iostream&qu ...

  9. fhq-treap简介

    \(fhq-treap\)是个好东西啊!无旋转\(treap\)果然是好写,而且还是比较好理解的. 这种数据结构是由神犇fhq发明的.\(Think\ functional!\) fhq神犇说,函数式 ...

  10. C++之运算符重载(前置++和后置++)

    今天在阅读<google c++ 编程风格>的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理 ...