mycat快速体验

横空出世的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配置文件。

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">

	<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">

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

</mycat:schema>

 

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

<?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文件中的启动配置修改为:

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

 

再次启动程序成功。

 

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配置的逻辑库。


 

创建表

CREATE TABLE `employee` (
  `ID` int(11) NOT NULL,
  `NAME` varchar(100) default NULL,
  `SHARDING_ID` int(11) NOT NULL,
  PRIMARY KEY  (`ID`)
)

 插入数据:

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分片表成功

         

 

 

猜你喜欢

转载自sheng1881080219.iteye.com/blog/2257404