mycat中间件安装与使用
前提:
安装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中间件安装与使用的更多相关文章
- mysql mycat 中间件安装与使用
一,什么是mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...
- Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解
一.mycat的安装 环境准备:准备一台虚拟机192.168.152.128 1. 下载mycat cd /softwarewget http:-linux.tar.gz 2. 解压mycat tar ...
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变
[Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...
- Mycat 中间件配置初探与入门操作
Mycat中间件配置初探与入门操作 By:授客 QQ:1033553122 实践环境 Mycat-server-1.5.1-RELEASE-20161130213509-win.tar.gz 下载地址 ...
- mycat的安装及配置文件应用
table:逻辑一 mycat的安装 1 基于jdk运行 2 获取安装包 3 解压 tar -xf Mycat***.tar.gz 4 测试运行 mycat的根目录中bin保存了mycat的核心命令文 ...
- MyCat中间件:读写分离(转)
利用MyCat中间件实现读写分离 需要两步: 1.搭建MySQL主从复制环境 2.配置MyCat读写分离策略 一.搭建MySQL主从环境 参考上一篇博文:MySQL系列之七:主从复制 二.配置MyCa ...
- MyCat(1.2)Mycat的安装
[0]基本环境 OS:CentOS7.5 Software envireonment:JDK1.7.0 Master Software:Mycat1.6.5 Linux Client:CRT 8.0 ...
- mycat的安装及使用 看这一篇就够了
1.环境准备 本次使用的虚拟机环境是centos6.5 首先准备四台虚拟机,安装好mysql,方便后续做读写分离和主从复制. 192.168.85.111 node01 192.168.85. ...
- CentOS7安装MYCAT中间件
MYCAT是一个被广泛使用的功能强大的开源的数据库中间件,当然他的理想不仅仅是做一个中间件.这篇文章主要记录MYCAT服务的搭建过程,下篇会继续更新MYCAT的使用配置. 本篇记录将使用CentOS7 ...
随机推荐
- cmd - 使用curl命令的注意点
前言 最近在cmd中使用curl命令来测试rest api,发现有不少问题,这里记录一下. 在cmd中使用curl命令的注意事项 json不能由单引号包括起来 json数据里的双引号要用反斜杠\转义 ...
- socket模拟服务器,客户端下载东西(ftp)
服务端(ftp_server.py) import hashlib,socket,os server = socket.socket() server.bind(("localhost&qu ...
- 《Python网络爬虫之三种数据解析方式》
引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指 ...
- mongodb-安装&配置&启动
下载:https://www.mongodb.com/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.3.tgz/downloa ...
- 关于java中的不可变类(转)
如何在Java中写出Immutable的类? 要写出这样的类,需要遵循以下几个原则: 1)immutable对象的状态在创建之后就不能发生改变,任何对它的改变都应该产生一个新的对象. 2)Immuta ...
- VMware下OSSIM 5.2.0的下载、安装和初步使用(图文详解)
不多说,直接上干货! 入门阶段不建议选用最新的版本. 采用OSSIM 4.11 到 OSSIM5.0.3 之间任何版本做实验,sensor的状态都会是“V”. 建议,入门,采用OSSIM5.0.0 ...
- datagrid数据网格获取所有选中行的索引,插入某个列值为其他列的运算值
获取所有选中行的索引,存入数组ary中: var data=$("#dg").datagrid("getSelections"); var ary=[]; fo ...
- Android Theme.Dialog 到光 AppCompatDialog
我用在我的 style.xml 作为主要应用程序主题 <style name="AppTheme" parent="Theme.AppCompat.Light&qu ...
- UIView动画效果之----翻转.旋转.偏移.翻页.缩放.取反的动画效
翻转的动画 //开始动画 [UIView beginAnimations:@"doflip" context:nil]; //设置时常 [UIView setAnimationDu ...
- 《Python基础教程》 读书笔记 第九章 魔法方法、属性和迭代器(上)
构造方法 在Python中创建一个构造方法很容易.只要把init方法的名字从简单的init修改为魔法版本__init__即可: >>> class FooBar: ... d ...