横空出世的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. 添加 validate 验证规则

    上篇文章链接:http://blog.csdn.net/chenmoimg_/article/details/71191476 修改 msg.js $.extend($.validator.messa ...

  2. Safe and efficient allocation of memory

    Aspects of the present invention are directed at centrally managing the allocation of memory to exec ...

  3. Linux经常使用命令(十六) - whereis

    whereis命令仅仅能用于程序名的搜索(程序安装在哪?).并且仅仅搜索二进制文件(參数-b).man说明文件(參数-m)和源码文件(參数-s). 假设省略參数,则返回全部信息. 和find相比.wh ...

  4. Timus 1935. Tears of Drowned 具体解释

    Old Captain Jack Sparrow's friend Tia Dalma, the fortuneteller and prophetess, often makes potions. ...

  5. Thinkphp的 is null 查询条件是什么,以及exp表达式如何使用

    Thinkphp的 is null 查询条件是什么,以及exp表达式如何使用 一.总结 一句话总结:$map['name'] = array('exp','is null'); 1.is null判断 ...

  6. H.264视频编解码SoC满足高清DVR设计需求

    硬盘录像机(DVR)作为监控系统的核心部件之一,在10年里高速发展,从模拟磁带机的替代品演变成具有自己独特价值的专业监控数字平台,并被市场广泛接受.监控系统伴随DVR这些年的发展向着IP化.智能化发展 ...

  7. Enity Framework已经是.NET下最主要的ORM了

    Enity Framework已经是.NET下最主要的ORM了.而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的升华.切实地说,就是ORM让数 ...

  8. C_数组详解

    数组: 一 一维数组 1.1 一维数组的定义: 类型符 数组名[常量表达式]; int a[10]; 说明: 1.数组的命名规则遵循标识符命名规则. 2.定义时需要指定元素的个数.方括号里的常量表达式 ...

  9. LuoguP2764 最小路径覆盖问题(最大流)

    题目描述 «问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任何一个顶点开 ...

  10. 今日SGU 5.9

    SGU 297 题意:就是求余数 收获:无 #include<bits/stdc++.h> #define de(x) cout<<#x<<"=" ...