前提:

安装JDK版本在7.0及其以上

1、下载:

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

2、安装:

直接解压即可:

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

3、配置:

配置JDK环境变量,mycat环境变量

vim /etc/profile

MYCAT_HOME=/usr/local/Mycat

vim /etc/hosts      配置集群对应IP

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">test,test1</property>    #配置数据库名,逻辑数据库,与下面schema.xml配置文件中的逻辑库对应,逻辑库是在mycat上存在的库

    <!-- 表级 DML 权限设置 -->
    <!--
    <privileges check="false">
      <schema name="test" dml="0110" >
        <table name="test" dml="0000"></table>
      </schema>

      <schema name="test1" dml="0110" >
        <table name="test" dml="0000"></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="test" checkSQLschema="false" sqlMaxLimit="100" >        #逻辑数据库名称,对应上面server.xml里的个数,有两个就写两个schema标签
      <table name="test" primaryKey="id" type="global" autoIncrement=“true” dataNode="dn1,dn2,dn3" rule="mod-long" ></table>    #这里实现分库分表的标签。dataNode对应不同的数据节点,name为表名,rule为分表规则,这里一般在企业里用的最多的时取模分表,可控性高。分表的数量要与rule.xml中的数量配置一致

      <table name="table" primaryKey="id" type="global" autoIncrement=“true” dataNode="dn1" rule="mod-long" ></table>
    </schema>

    <schema name="test1" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2">
      <!—配置需要分片的表-->
      <table name=“test” primaryKey="id" type="global" autoIncrement=“true” dataNode=”dn2”/>
    </schema>

#如果不需要分表,那么直接可以:注意我这里是两个逻辑库,所以有两个标签,dataNode对应到下面的<dataNode>标签,如果有第三个库,那么就增加一个schema标签同时dataNode设置为dn3,以此类推

<schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>

<schema name="test1" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2"></schema>

#节点名,与schema或table中dataNode对应    dataHost:数据库实例名称,也可以是数据节点的IP别名   database:物理数据库中数据库名
<dataNode name="dn1" dataHost="192.168.88.129" database="test"/>
<dataNode name="dn2" dataHost="192.168.88.129" database="test1"/>

如果需要分表,那么dataNode标签应该这样定义:对应上面的table标签。注意这里是上面有table标签,下面才有的这三个dataNode。name对应上面table标签里的dataNode。
<dataNode name="dn1" dataHost="192.168.88.129" database="test"/>
<dataNode name="dn2" dataHost="192.168.88.129" database="test1"/>
<dataNode name="dn3" dataHost="192.168.88.129" database="test2"/>
 

#dataHost:物理数据库名,与dataNode中dataHost对应 balance:负载均衡方式,下面有说明 writeType:写入方式 dbType:数据库类型
<dataHost name="db1" maxCon="1000" minCon="10" balance="1" writeType="0"
dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
#心跳检查语句,后面有分号
<heartbeat>show slave status</heartbeat>
<writeHost host="hostM1" url="192.168.88.129:13306" user="root" password="123456">    #这里配置数据库账号和密码,读写节点
<readHost host="hostS2" url="192.168.88.133:13306" user="root" password="123456"/>
</writeHost>
</dataHost>
</
mycat:schema>

#在一主一从环境中,负载均衡与读写分离可以这样设置:
<dataHost name="db1" maxCon="1000" minCon="10" balance="1" writeType="0"
dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
#心跳检查语句,后面有分号
<heartbeat>show slave status;</heartbeat>
<writeHost host="hostM1" url="192.168.88.129:13306" user="root" password="123456"/>    #这里配置数据库账号和密码,读写节点
    <writeHost host="hostS1" url="192.168.88.133:13306" user="root" password="123456"/>      #这里将writeHost标签写在外面就代表了高可用的备机
    </dataHost>
</
mycat:schema>
 

balance:

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

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

2.balance="1",写操作在主,读操作在从
3.balance="2",所有读操作都随机的在 write Host、readhost 上分发。 
4.balance="3",所有读请求随机的分发到 wiriter Host 对应的 readhost 执行,writer Host 不负担读压

关于分片表中dataNode和dataHost的理解:

  

  Mycat 目前没有出来跨分片的事务强一致性支持,目前单库内部可以保证事务的完整性,如果跨库事务, 在执行的时候任何分片出错,可以保证所有分片回滚,但是一旦应用发起 commit 指令,无法保证所有分片都成 功,考虑到某个分片挂的可能性不大所以称为弱 xa。           ----摘自mycat官方文档

  参考:https://blog.csdn.net/u013898617/article/details/80402956

 

mycat中间件安装与使用的更多相关文章

  1. mysql mycat 中间件安装与使用

    一,什么是mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...

  2. Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解

    一.mycat的安装 环境准备:准备一台虚拟机192.168.152.128 1. 下载mycat cd /softwarewget http:-linux.tar.gz 2. 解压mycat tar ...

  3. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变

    [Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...

  4. Mycat 中间件配置初探与入门操作

    Mycat中间件配置初探与入门操作 By:授客 QQ:1033553122 实践环境 Mycat-server-1.5.1-RELEASE-20161130213509-win.tar.gz 下载地址 ...

  5. mycat的安装及配置文件应用

    table:逻辑一 mycat的安装 1 基于jdk运行 2 获取安装包 3 解压 tar -xf Mycat***.tar.gz 4 测试运行 mycat的根目录中bin保存了mycat的核心命令文 ...

  6. MyCat中间件:读写分离(转)

    利用MyCat中间件实现读写分离 需要两步: 1.搭建MySQL主从复制环境 2.配置MyCat读写分离策略 一.搭建MySQL主从环境 参考上一篇博文:MySQL系列之七:主从复制 二.配置MyCa ...

  7. MyCat(1.2)Mycat的安装

    [0]基本环境 OS:CentOS7.5 Software envireonment:JDK1.7.0 Master Software:Mycat1.6.5 Linux Client:CRT 8.0 ...

  8. mycat的安装及使用 看这一篇就够了

    1.环境准备 ​ 本次使用的虚拟机环境是centos6.5 ​ 首先准备四台虚拟机,安装好mysql,方便后续做读写分离和主从复制. 192.168.85.111 node01 192.168.85. ...

  9. CentOS7安装MYCAT中间件

    MYCAT是一个被广泛使用的功能强大的开源的数据库中间件,当然他的理想不仅仅是做一个中间件.这篇文章主要记录MYCAT服务的搭建过程,下篇会继续更新MYCAT的使用配置. 本篇记录将使用CentOS7 ...

随机推荐

  1. niushop,优秀的国产开源电商系统体验

    前几天,小编发布了国产电商开源系统推荐,有个小伙伴后台留言说niushop不错. 先别管这么多,盘他! 我这里下载的是B2C单商户免费版 先把源码下载下来.安装之前先看看niushop的环境要求. P ...

  2. Java相关书籍阅读

  3. 转 载python数据分析(1)-numpy产生随机数

    转自:http://blog.csdn.net/jinxiaonian11/article/details/53143141 在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常 ...

  4. SDIO学习

    https://baijiahao.baidu.com/s?id=1561100856106707&wfr=spider&for=pc http://www.eepw.com.cn/a ...

  5. linux 简单的mysql备份和导入,以及文件的备份和导入

    一,数据库的备份与导入 1),数据库的备份 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 例:mysqldump -u dbadmin -p myblo ...

  6. eCharts基础知识

    eCharts插件介绍 http://echarts.baidu.com/tutorial.html#ECharts%20%E7%89%B9%E6%80%A7%E4%BB%8B%E7%BB%8D

  7. AJPFX关于Collection接口的总结

    ###15Collection-List-ArrayList/LinkedList/*  * Collection接口中的方法* A:添加功能*                 boolean add ...

  8. VC运行时库(/MD、/MT等)

    VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT).多线程调试(/MTd).多线程DLL(/MD).多线程调试DLL(/MDd).单线程(/ML).单线程调试( ...

  9. iOS组件化开发· 什么是组件化

    越来越多公司,开始了组件化,你还要等到什么时候...... 说到开发模式,我们最熟知的开发模式 MVC 或者最近比较热门的MVVM.但是我今天说的组件化的开发,其实MVC不是一类的.它其实是····· ...

  10. 图片压缩(pc端和移动端都适用)

    最近在做移动端遇到了一个问题就是: 手机拍照后,图片过大如果上传到服务器务必会浪费带宽,最重要的是流量啊 别慌,好事儿来了,务必就会有人去研究研究图片的压缩: 鄙人结合前人的经验,结合自己实战,总结出 ...