mycat中间件安装与使用

Posted magmell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mycat中间件安装与使用相关的知识,希望对你有一定的参考价值。

1、下载:

下载地址在:http://dl.mycat.io/      选择1.6-release版本下载

2、安装:

直接解压即可:

tar -zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

3、配置:

先配置JDK,和wrapper.conf

wrapper.conf:用来配置JVM虚拟机内存

wrapper.java.command=/lib/jvm/bin/java      #JAVA目录下JAVA命令所在

wrapper.working.dir=..

---------------------------JVM参数调优-------------------------------------

wrapper.java.additional.1=-DMYCAT_HOME=.
wrapper.java.additional.2=-server
wrapper.java.additional.3=-XX:MaxPermSize=64M
wrapper.java.additional.4=-XX:+AggressiveOpts
wrapper.java.additional.5=-XX:MaxDirectMemorySize=2G
wrapper.java.additional.6=-Dcom.sun.management.jmxremote
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.10=-Xmx4G
wrapper.java.additional.11=-Xms1G

# Java Additional Parameters
#wrapper.java.additional.1=
wrapper.java.additional.1=-DMYCAT_HOME=.
wrapper.java.additional.2=-server
wrapper.java.additional.3=-XX:MaxPermSize=64M
wrapper.java.additional.4=-XX:+AggressiveOpts
#堆内存适度大小,直接映射内存尽可能大,两种一起占据服务器的1/2-2/3的内存
wrapper.java.additional.5=-XX:MaxDirectMemorySize=6G
wrapper.java.additional.6=-Dcom.sun.management.jmxremote
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
#无论扩展还是缩减新生代空间或老年代空间都需要进行Full GC,而Full GC会降低程序的吞吐量并导致更长的延迟。
wrapper.java.additional.10=-Xmx4G
wrapper.java.additional.11=-Xms4G

mycat配置主要有三个文件配置,都在conf目录下。分别是:server.xml     schema.xml      rule.xml

server.xml:主要用来配置连接mycat的用户与密码。

<user name="root">        #配置连接mycat的用户名
  <property name="password">123456</property>      #配置连接mycat的密码
    <property name="schemas">TESTDB</property>    #配置数据库名,逻辑数据库,对应真实存在数据库的个数

    <!-- 表级 DML 权限设置 -->
    <!--
    <privileges check="false">
      <schema name="TESTDB" dml="0110" >
        <table name="tb01" dml="0000"></table>
        <table name="tb02" dml="1111"></table>
      </schema>
    </privileges>
    -->
</user>

schema.xml:主要用来配置数据库设置

<?xml version="1.0" ?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
    <!-- 设置表的存储方式.schema name="TESTDB" 与 server.xml中的 test_schema 设置一致  -->
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">    #name属性要与server.xml中设置的一致   sqlMaxLimit:select 时默认的limit,避免查询全表
        <table name="test_one" primaryKey="id" dataNode="dn$1-3" rule="sharding-by-date"/>    #这里配置表分片,也就是分表。table:表名,物理数据库中表名   dataNode:表存储到哪些节点,多个节点用逗号分隔。节点为下文dataNode设置的name
    </schema>

    #节点名,与table中dataNode对应    dataHost:物理数据库名,与datahost中name对应,下面的标签   database:物理数据库中数据库名
    <dataNode name="dn1" dataHost="dh_test" database="db_1"/>
    <dataNode name="dn2" dataHost="dh_test" database="db_2"/>
    <dataNode name="dn3" dataHost="dh_test" database="db_3"/>

    #dataHost:物理数据库名,与dataNode中dataHost对应   balance:负载均衡方式,下面有说明    writeType:写入方式   dbType:数据库类型   
    <dataHost name="dh_test" maxCon="1000" minCon="10" balance="3" writeType="0"
              dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
        #心跳检查语句,后面有分号
        <heartbeat>show slave status</heartbeat>
        <writeHost host="hostM1" url="192.168.252.121:3306" user="root" password="mima">
            <readHost host="hostS2" url="192.168.252.122:3306" user="root" password="mima"/>
        </writeHost>
    </dataHost>

</mycat:schema>

balance:

负载均衡类型,目前的取值有 3 种:

1.balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 write Host 上。 

2.balance="1",全部的 read Host 与 stand by write Host 参与 select 语句的负载均衡 
3.balance="2",所有读操作都随机的在 write Host、readhost 上分发。 
4.balance="3",所有读请求随机的分发到 wiriter Host 对应的 readhost 执行,writer Host 不负担读压

 



















以上是关于mycat中间件安装与使用的主要内容,如果未能解决你的问题,请参考以下文章

大型分布式数据库中间件MyCat的安装与使用

MyCat 读写分离 数据库分库分表 中间件 安装部署,及简单使用

Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用

mycat中间件--linux安装mycat1.6版本

MyCat使用实例

MySql分库分表中间件-MyCat