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

 

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

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.   
  12. </mycat:server>  

 

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

 

   3、进入bin目录。

         

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

   输错错误信息:



 

 

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

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

 

再次启动程序成功。

 

Logs代码  收藏代码
  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_studyMycat-server-1.4-release-20151019230038-winmycatin/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  

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



 

 

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


 

创建表

Sql代码  收藏代码
  1. CREATE TABLE `employee` (  
  2.   `ID` int(11) NOT NULL,  
  3.   `NAMEvarchar(100) default NULL,  
  4.   `SHARDING_ID` int(11) NOT NULL,  
  5.   PRIMARY KEY  (`ID`)  
  6. )  

 插入数据:

Sql代码  收藏代码
  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');  

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

分别打开mycat1  ,mycat2数据库

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

         

 

 

原文地址:https://www.cnblogs.com/jpfss/p/8194369.html