横空出世的MyCat截至到2015年4月,保守估计已经有超过60个项目在使用,主要应用在电信领域、互联网项目,大部分是交易和管理系统,少量是信息系统。比较大的系统中,数据规模单表单月30亿。本人也初步尝鲜,体验了一把,见以下描述,供大家参考。

MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用

了 JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。

https://github.com/MyCATApache/

注:MyCAT 相关源码、文档都可以在此地址下进行下载。

windows下可以下载Mycat-server-1.4-RELEASE-yyyymmddxxxx-win.tar

今天体验的是在windows 10系统下。

体验的版本:Mycat-server-1.4-release-20151019230038-win

解压后的文件目录:

|-mycat

|----bin     //启动mycat

|----catlet

|----conf   //配置文件

|----lib     //jar存放目录

|----logs  //日志文件

体验步骤

1、首先在本地的mysql建两个空数据库  mycat1,mycat2。

2、修改conf目录下面的 schema.xml配置文件。

  1. <?xml version="1.0"?>
  2. <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
  3. <mycat:schema xmlns:mycat="http://org.opencloudb/">
  4. <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
  5. <table name="employee" primaryKey="ID" dataNode="dn1,dn2"
  6. rule="sharding-by-intfile" />
  7. </schema>
  8. <dataNode name="dn1" dataHost="localhost" database="mycat1" />
  9. <dataNode name="dn2" dataHost="localhost" database="mycat2" />
  10. <dataHost name="localhost" maxCon="1000" minCon="10" balance="0"
  11. writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
  12. <heartbeat>select user()</heartbeat>
  13. <writeHost host="hostM1" url="localhost:3306" user="root"
  14. password="11aa..123">
  15. <!-- can have multi read hosts -->
  16. </writeHost>
  17. </dataHost>
  18. </mycat:schema>
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
&lt;schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"&gt;

	&lt;table name="employee" primaryKey="ID" dataNode="dn1,dn2"
rule="sharding-by-intfile" /&gt;
&lt;/schema&gt;
&lt;dataNode name="dn1" dataHost="localhost" database="mycat1" /&gt;
&lt;dataNode name="dn2" dataHost="localhost" database="mycat2" /&gt;
&lt;dataHost name="localhost" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"&gt;
&lt;heartbeat&gt;select user()&lt;/heartbeat&gt;
&lt;writeHost host="hostM1" url="localhost:3306" user="root"
password="11aa..123"&gt;
&lt;!-- can have multi read hosts --&gt;
&lt;/writeHost&gt;
&lt;/dataHost&gt;

</mycat:schema>

3、修改conf目录下面的 server.xml配置文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mycat:server SYSTEM "server.dtd">
  3. <mycat:server xmlns:mycat="http://org.opencloudb/">
  4. <system>
  5. <property name="defaultSqlParser">druidparser</property>
  6. </system>
  7. <user name="test">
  8. <property name="password">test</property>
  9. <property name="schemas">TESTDB</property>
  10. </user>
  11. </mycat:server>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<system>
<property name="defaultSqlParser">druidparser</property>
</system>
<user name="test">
<property name="password">test</property>
<property name="schemas">TESTDB</property>
</user> </mycat:server>

server.xml配置文件用来配置mycat对方的数据库连接用户名密码,启动成功后可以用navicat连接。

3、进入bin目录。

看命名的意思startup_nowrap.bat是不注册开机自动启动服务的,准备选择startup_nowrap.bat来启动mycat。但是双击startup_nowrap.bat 之后,运行界面一闪而过。logs中也没有相关的错误信息,改为从dos环境启动。

输错错误信息:

讲bat文件中的启动配置修改为:

  1. "%JAVA_CMD%" -server -Xms128M -Xmx256M -XX:MaxPermSize=64M  -XX:+AggressiveOpts -XX:MaxDirectMemorySize=128M -DMYCAT_HOME=%MYCAT_HOME% -cp "..\conf;..\lib\*" org.opencloudb.MycatStartup
"%JAVA_CMD%" -server -Xms128M -Xmx256M -XX:MaxPermSize=64M  -XX:+AggressiveOpts -XX:MaxDirectMemorySize=128M -DMYCAT_HOME=%MYCAT_HOME% -cp "..\conf;..\lib\*" org.opencloudb.MycatStartup

再次启动程序成功。

  1. 11/17 17:16:45.689   INFO [main] (MycatServer.java:195) -===============================================
  2. 11/17 17:16:45.689   INFO [main] (MycatServer.java:196) -MyCat is ready to startup ...
  3. 11/17 17:16:45.689   INFO [main] (MycatServer.java:206) -Startup processors ...,total processors:8,aio thread pool size:16
  4. each process allocated socket buffer pool  bytes ,buffer chunk size:4096  buffer pool's capacity(buferPool/bufferChunk) is:8000
  5. 11/17 17:16:45.689   INFO [main] (MycatServer.java:207) -sysconfig params:SystemConfig [processorBufferLocalPercent=100, frontSocketSoRcvbuf=1048576, frontSocketSoSndbuf=4194304, backSocketSoRcvbuf=4194304, backSocketSoSndbuf=1048576, frontSocketNoDelay=1, backSocketNoDelay=1, maxStringLiteralLength=65535, frontWriteQueueSize=2048, bindIp=0.0.0.0, serverPort=8066, managerPort=9066, charset=utf8, processors=8, processorExecutor=16, timerExecutor=2, managerExecutor=2, idleTimeout=1800000, catletClassCheckSeconds=60, sqlExecuteTimeout=300, processorCheckPeriod=1000, dataNodeIdleCheckPeriod=300000, dataNodeHeartbeatPeriod=10000, clusterHeartbeatUser=_HEARTBEAT_USER_, clusterHeartbeatPass=_HEARTBEAT_PASS_, clusterHeartbeatPeriod=5000, clusterHeartbeatTimeout=10000, clusterHeartbeatRetry=10, txIsolation=3, parserCommentVersion=50148, sqlRecordCount=10, processorBufferPool=32768000, processorBufferChunk=4096, defaultMaxLimit=100, sequnceHandlerType=0, sqlInterceptor=org.opencloudb.interceptor.impl.DefaultSqlInterceptor, sqlInterceptorType=select, sqlInterceptorFile=D:\mycat_study\Mycat-server-1.4-release-20151019230038-win\mycat\bin/logs/sql.txt, mutiNodeLimitType=0, mutiNodePatchSize=100, defaultSqlParser=druidparser, usingAIO=0, packetHeaderSize=4, maxPacketSize=16777216, mycatNodeId=1]
  6. 11/17 17:16:45.720   INFO [main] (MycatServer.java:266) -using nio network handler
  7. 11/17 17:16:45.751   INFO [main] (MycatServer.java:284) -$_MyCatManager is started and listening on 9066
  8. 11/17 17:16:45.751   INFO [main] (MycatServer.java:288) -$_MyCatServer is started and listening on 8066
11/17 17:16:45.689   INFO [main] (MycatServer.java:195) -===============================================
11/17 17:16:45.689 INFO [main] (MycatServer.java:196) -MyCat is ready to startup ...
11/17 17:16:45.689 INFO [main] (MycatServer.java:206) -Startup processors ...,total processors:8,aio thread pool size:16
each process allocated socket buffer pool bytes ,buffer chunk size:4096 buffer pool's capacity(buferPool/bufferChunk) is:8000
11/17 17:16:45.689 INFO [main] (MycatServer.java:207) -sysconfig params:SystemConfig [processorBufferLocalPercent=100, frontSocketSoRcvbuf=1048576, frontSocketSoSndbuf=4194304, backSocketSoRcvbuf=4194304, backSocketSoSndbuf=1048576, frontSocketNoDelay=1, backSocketNoDelay=1, maxStringLiteralLength=65535, frontWriteQueueSize=2048, bindIp=0.0.0.0, serverPort=8066, managerPort=9066, charset=utf8, processors=8, processorExecutor=16, timerExecutor=2, managerExecutor=2, idleTimeout=1800000, catletClassCheckSeconds=60, sqlExecuteTimeout=300, processorCheckPeriod=1000, dataNodeIdleCheckPeriod=300000, dataNodeHeartbeatPeriod=10000, clusterHeartbeatUser=_HEARTBEAT_USER_, clusterHeartbeatPass=_HEARTBEAT_PASS_, clusterHeartbeatPeriod=5000, clusterHeartbeatTimeout=10000, clusterHeartbeatRetry=10, txIsolation=3, parserCommentVersion=50148, sqlRecordCount=10, processorBufferPool=32768000, processorBufferChunk=4096, defaultMaxLimit=100, sequnceHandlerType=0, sqlInterceptor=org.opencloudb.interceptor.impl.DefaultSqlInterceptor, sqlInterceptorType=select, sqlInterceptorFile=D:\mycat_study\Mycat-server-1.4-release-20151019230038-win\mycat\bin/logs/sql.txt, mutiNodeLimitType=0, mutiNodePatchSize=100, defaultSqlParser=druidparser, usingAIO=0, packetHeaderSize=4, maxPacketSize=16777216, mycatNodeId=1]
11/17 17:16:45.720 INFO [main] (MycatServer.java:266) -using nio network handler
11/17 17:16:45.751 INFO [main] (MycatServer.java:284) -$_MyCatManager is started and listening on 9066
11/17 17:16:45.751 INFO [main] (MycatServer.java:288) -$_MyCatServer is started and listening on 8066

可以看到mycat监听的端口号,使用navicat连接mycat数据库。

连接成功可以看到schema.xml配置的逻辑库。

创建表

  1. CREATE TABLE `employee` (
  2. `ID` int(11) NOT NULL,
  3. `NAME` varchar(100) default NULL,
  4. `SHARDING_ID` int(11) NOT NULL,
  5. PRIMARY KEY  (`ID`)
  6. )
CREATE TABLE `employee` (
`ID` int(11) NOT NULL,
`NAME` varchar(100) default NULL,
`SHARDING_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`)
)

插入数据:

  1. INSERT INTO `employee` VALUES ('1', 'leader us', '10000');
  2. INSERT INTO `employee` VALUES ('2', 'mycat', '10000');
  3. INSERT INTO `employee` VALUES ('3', 'mydog', '10000');
  4. INSERT INTO `employee` VALUES ('4', 'mypig', '10000');
INSERT INTO `employee` VALUES ('1', 'leader us', '10000');
INSERT INTO `employee` VALUES ('2', 'mycat', '10000');
INSERT INTO `employee` VALUES ('3', 'mydog', '10000');
INSERT INTO `employee` VALUES ('4', 'mypig', '10000');

使用navicat可以看到插入的四条记录。

分别打开mycat1  ,mycat2数据库

employee表中分别有1,3;2,4;两条记录  表明mycat分片表成功

mycat快速体验(转)的更多相关文章

  1. gitbook 入门教程之快速体验

    本文主要介绍三种使用 gitbook 的方式,分别是 gitbook 命令行工具,Gitbook Editor 官方编辑器和 gitbook.com 官网. 总体来说,三种途径适合各自不同的人群,找到 ...

  2. 快速体验 Laravel 自带的注册、登录功能

    快速体验 Laravel 自带的注册.登录功能 注册.登录经常是一件很伤脑筋的是,Laravel 提供了解决方案,可以直接使用它.试过之后,感觉真爽! 前提:本地已安装好了 PHP 运行环境.mysq ...

  3. 分布式_事务_01_2PC框架raincat快速体验1

    一.前言 关于2PC的理论知识请见:分布式_理论_03_2PC 这一节我们来看下github上一个优秀的2PC分布式事务开源框架的快速体验. 二.源码 源码请见: https://github.com ...

  4. 分布式事务_01_2PC框架raincat快速体验

    一.前言 关于2PC的理论知识请见:分布式_理论_03_2PC 这一节我们来看下github上一个优秀的2PC分布式事务开源框架的快速体验. 二.源码 源码请见: https://github.com ...

  5. Dev 日志 | 文章《快速体验知识图谱 OwnThink》中的技术问题

    社区小伙伴反馈在实践文章<使用图数据库 Nebula Graph 数据导入快速体验知识图谱 OwnThink>时,遇到了一些问题,Nebula Graph 将在本文对该文章中出现的问题进行 ...

  6. Django之Django快速体验

    Django快速体验 前语: 这一节内容是直接快速上手,后面的内容是对内容进行按步解释,如果不想看解析的,可以直接只看这一节的内容. 1.新建项目应用新建项目test1新建应用booktest 2.注 ...

  7. CDH5.13快速体验

    相对于易用性很差Apache Hadoop,其他商业版Hadoop的性能易用性都有更好的表现,如Cloudera.Hortonworks.MapR以及国产的星环,下面使用CDH(Cloudera Di ...

  8. 【Java】15分钟快速体验阿里Java诊断工具Arthas

    [墙裂推荐]15分钟快速体验阿里Java诊断工具Arthas : https://alibaba.github.io/arthas/arthas-tutorials?language=cn&i ...

  9. sh_02_快速体验

    sh_02_快速体验 import sh_01_九九乘法表 sh_01_九九乘法表.multiple_table()

随机推荐

  1. BZOJ一句话

    一句话题解集合. 1061: [Noi2008]志愿者招募 单纯形,运用对偶原理转化过来,变成标准形然后单纯性裸上即可. #include<cmath> #include<cstdi ...

  2. nginx下修改svn配置

    最近公司的SVN服务器地址做了变更,而我用的操作系统是Ubuntu操作系统,我也不想把以前下载的代码重新进行修改,我想通过修改svn地址,应该可以,终于在网上通过查找资料,找到了解决的方法:      ...

  3. TI Code Composer Studio MSP430系列驱动源代码

    一.参考TI官网驱动源代码 安装打开Code Composer Studio,如下图所示,最近在调试MSP430G2533的AD,需要参考官网的底层驱动配置. 从Code Composer Studi ...

  4. Java Web学习总结(10)——Session详解

    摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术.本文将详细讨论session的工作机制并且对在Java ...

  5. Spring Cloud学习笔记【三】服务消费者Feign

    Feign 是一个声明式的 Web Service 客户端,它的目的就是让 Web Service 调用更加简单.它整合了 Ribbon 和 Hystrix,从而让我们不再需要显式地使用这两个组件.F ...

  6. android 4.4最新官方源代码下载

    国内网络,日夜不休花了一个多月才下载成功android标准源代码,有些开发同人须要.已上传到网盘,分享给大家 微云地址: http://url.cn/PkkSzC 百度云盘地址(更新) http:// ...

  7. 思科2960trunk vlan配置及路由IP配置

    en conf t vlan id end conf t inter rang gi 0/0/1-x switchport access vlan id no shutdown exit (confi ...

  8. jquery15 on() trigger() : 事件操作的相关方法

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  9. [BZOJ2143]飞飞侠 并查集优化最短路

    链接 题解 首先很容易想到对每个点暴力跑Dijkstra,但是这样边数是 \(N^4\) 的,考虑优化 发现每次松弛的时候,都要把整个地图扫一遍,每个节点都要重复扫很多次,如果我们在一个点不会再被更新 ...

  10. uva 11248 最小割

    Dinic 1 #include<iostream> #include<string> #include<algorithm> #include<cstdli ...