天天看点

Mycat十分钟入门---上帝说要有光,于是便有了光

10分钟入门

MyCAT是使用JAVA语言进行编写开发,使用前需要先安装JAVA运行环境(JRE),由于MyCAT中使用了JDK7中的一些特性,所以要求必须在JDK7以上的版本上运行。

1 环境准备

1) JDK下载

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

注:必须JDK7或更高版本.

2) MySQL下载

http://dev.mysql.com/downloads/mysql/5.5.html#downloads

注:MyCAT支持多种数据库接入,如:MySQL、SQLServer、Oracle、MongoDB等,推荐使用MySQL做集群。

3) MyCAT项目主页

https://github.com/MyCATApache/

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

2 环境安装与配置

如果是第一次刚接触MyCAT,建议先下载MyCAT-Server源码到本地,通过Eclipse等工具进行配置和运行,便于深入了解和调试程序运行逻辑。

1) MyCAT-Server源码下载

由于MyCAT源码目前主要托管在github上,需要先在本地安装和配置好相关环境,具体参考群共享中“github-eclipse开发指南.docx”,这说明有很详细的配置说明,按照文档中的步骤把MyCAT-Server源码下载到本地即可。

MyCAT-Server仓库地址:https://github.com/MyCATApache/Mycat-Server.git

2) 源码调试与配置

MyCAT目前主要通过配置文件的方式来定义逻辑库和相关配置:

  • • MYCAT_HOME/conf/schema.xml中定义逻辑库,表、分片节点等内容.
  • • MYCAT_HOME/conf/rule.xml中定义分片规则.
  • • MYCAT_HOME/conf/server.xml中定义用户以及系统相关变量,如端口等.

注:以上几个文件的具体配置请参考前面章节中的具体说明.

3) 源码运行

MyCAT入口程序是org.opencloudb.MycatStartup.java,右键run as出现下面的界面,需要设置MYCAT_HOME目录,为你工程当前所在目录(src/main):

Mycat十分钟入门---上帝说要有光,于是便有了光

设置完MYCAT主目录后即可正常运行MyCAT服务。

注:若启动报错,DirectBuffer内存不够,则可以再加JVM系统参数:

XX:MaxDirectMemorySize=128M

服务安装与配置

1 linux

MyCAT有提供编译好的安装包,支持windows、Linux、Mac、Solaris等系统上安装与运行。

linux下可以下载Mycat-server-xxxxx.linux.tar.gz 解压在某个目录下,注意目录不能有空格,在Linux(Unix)下,建议放在usr/local/Mycat目录下,如下:

Mycat十分钟入门---上帝说要有光,于是便有了光

下面是修改MyCAT用户密码的方式(仅供参考):

目录解释如下:

Mycat十分钟入门---上帝说要有光,于是便有了光
Mycat十分钟入门---上帝说要有光,于是便有了光

bin 程序目录,存放了window版本和linux版本,除了提供封装成服务的版本之外,也提供了nowrap的shell脚本命令,方便大家选择和修改,进入到bin目录:

Linux下运行:./mycat console,首先要chmod +x *

注:mycat支持的命令{ console | start | stop | restart | status | dump }

conf目录下存放配置文件,server.xml是Mycat服务器参数调整和用户授权的配置文件,schema.xml是逻辑库定义和表以及分片定义的配置文件,rule.xml是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改,需要重启Mycat或者通过9066端口reload.

lib目录下主要存放mycat依赖的一些jar文件.

日志存放在logs/mycat.log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要,可以调整输出级别为debug,debug级别下,会输出更多的信息,方便排查问题.

注意:Linux下部署安装MySQL,默认不忽略表名大小写,需要手动到/etc/my.cnf 下配置 lower_case_table_names=1 使Linux环境下MySQL忽略表名大小写,否则使用MyCAT的时候会提示找不到表的错误!

2 windows

MyCAT有提供编译好的安装包,支持windows、Linux、Mac、Solaris等系统上安装与运行。

windows下可以下载Mycat-server-xxxxx-win.tar.gz 解压在某个目录下,建议解压到本地某个盘符根目录下,如下:

目录解释如下:

Mycat十分钟入门---上帝说要有光,于是便有了光

bin 程序目录,存放了window版本和linux版本,除了提供封装成服务的版本之外,也提供了nowrap的shell脚本命令,方便大家选择和修改,进入到bin目录:

Windows下运行:运行: mycat.bat在控制台启动程序,也可以装载成服务,若此程序运行有问题,也可以运行startup_nowrap.bat,确保java命令可以在命令执行。

Windows下将MyCAT做成系统服务:MyCAT提供warp方式的命令,可以将MyCAT安装成系统服务并可启动和停止。

进入bin目录下, 输入 ./mycat start 启动mycat服务.

conf目录下存放配置文件,server.xml是Mycat服务器参数调整和用户授权的配置文件,schema.xml是逻辑库定义和表以及分片定义的配置文件,rule.xml是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改,需要重启Mycat或者通过9066端口reload.

lib目录下主要存放mycat依赖的一些jar文件.

日志存放在logs/mycat.log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要,可以调整输出级别为debug,debug级别下,会输出更多的信息,方便排查问题.

服务启动与启动设置

1 linux

MyCAT在Linux中部署启动时,首先需要在Linux系统的环境变量中配置MYCAT_HOME,操作方式如下:

1) vi /etc/profile,在系统环境变量文件中增加

2) 执行 source /etc/profile 命令,使环境变量生效。

如果是在多台Linux系统中组建的MyCAT集群,那需要在MyCAT Server所在的服务器上配置对其他ip和主机名的映射,配置方式如下:

vi /etc/hosts
           

例如:我有4台机器,配置如下:

IP 主机名:

192.168.100.2 sam_server_1
192.168.100.3 sam_server_2
192.168.100.4 sam_server_3
192.168.100.5 sam_server_4
           

编辑完后,保存文件。

经过以上两个步骤的配置,就可以到/usr/local/Mycat/bin 目录下执行:

即可启动mycat服务!

2 windows

MyCAT在windows中部署时,建议放在某个盘符的根目录下,如果不是在根目录下,请尽量不要放在包含中文的目录下

如:D:\Mycat-server-1.4-win\

命令行方式启动:

从cmd中执行命令到达 D:\Mycat-server-1.4-win\bin 目录下,执行startup_nowrap.bat 即可启动MyCAT服务。

注:执行此命令时,需要确保windows系统中已经配置好了JAVA的环境变量,并可执行java命令。jdk版本必须是1.7及以上版本。

基于zk的启动

1.5开始会支持本地xml启动,以及从zk加载配置转为本地xml的两种方式,conf下的zk.conf文件里设置loadfromzk参数默认为false

如果没有这个文件,或者没有loadfromzk为true的参数,即从本地加载。下面介绍从ZK启动相关配置。

Zk-create.yaml说明

1.5正式引入zookeeper(以下简称zk)管理Mycat-Server,启动server第一步是初始化zk数据,下面介绍初始化zk数据步骤,信息在zk-create.yaml。Mycat ZK配置文件详解:https://github.com/MyCATApache/Mycat-doc/blob/master/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/2.0/Mycat%20ZK%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3.docx

1、zk-create总体结构

Mycat十分钟入门---上帝说要有光,于是便有了光

2、参数说明

2.1、zkURL,zk连接地址

2.2、mycat-cluster

Mycat十分钟入门---上帝说要有光,于是便有了光
Mycat十分钟入门---上帝说要有光,于是便有了光
Mycat十分钟入门---上帝说要有光,于是便有了光
Mycat十分钟入门---上帝说要有光,于是便有了光
Mycat十分钟入门---上帝说要有光,于是便有了光
Mycat十分钟入门---上帝说要有光,于是便有了光

2.3、mycat-hosts

Mycat十分钟入门---上帝说要有光,于是便有了光

2.4、mycat-zones

Mycat十分钟入门---上帝说要有光,于是便有了光

2.5、mycat-nodes

Mycat十分钟入门---上帝说要有光,于是便有了光

2.6、mycat-mysqls

Mycat十分钟入门---上帝说要有光,于是便有了光

2.7、mysql-reps

Mycat十分钟入门---上帝说要有光,于是便有了光

Zk初始化

1、进入MYCAT/bin目录

Mycat十分钟入门---上帝说要有光,于是便有了光

2、修改MYCAT/conf/zk-create.yaml内容

修改方法见“Zk-create.yaml说明”。

3、启动ZK

启动ZK: bin/zkServer.sh start

Mycat十分钟入门---上帝说要有光,于是便有了光

登陆ZK: bin/zkCli.sh

Mycat十分钟入门---上帝说要有光,于是便有了光

4、初始化ZK数据

sh create_zookeeper_data.sh

等待执行结束后,检查ZK数据

5、检查ZK数据

Mycat十分钟入门---上帝说要有光,于是便有了光

OK,数据初始化成功。

demo使用

springMVC+ibatis+FreeMarker 连接mycat示例: http://pan.baidu.com/s/1qWr4AF6

继续阅读