mycat的读写分离设置
官网:http://www.mycat.org.cn/
一.jdk环境的安装
1.安装jdk1.7,这是mycat推荐的jdk环境
2.之前是用yum安装的jdk1.6,首先查找下
#yum info installed | grep java*
3.删除jdk1.6
#yum remove java-1.6.0-openjdk
4.安装jdk1.7
#yum install java-1.6.0-openjdk
二.mysql主从配置
略
三.安装mycat
1.下载
#wget https://github.com/MyCATApache/Mycat-download/raw/master/1.4-RELEASE/Mycat-server-1.4-release-20151019230038-linux.tar.gz
2.解压
#tar zxvf Mycat-server-1.4-release-20151019230038-linux.tar.gz #mv mycat /usr/local/mycat
四.配置mycat
1.进入conf目录
2.修改schemma.xml
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://org.opencloudb/"> <schema name="dbTest" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema> <dataNode name="dn1" dataHost="localhost1" database="dbTest" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="192.168.1.6:3306" user="test" password="test"> <readHost host="hostS1" url="localhost:3306" user="test" password="test" /> </writeHost> <writeHost host="hostS1" url="localhost:3306" user="test" password="test"> </writeHost> </dataHost> </mycat:schema>
重要项解释:
A.<schema name="dbTest" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
指定了mycat对外提供的数据库以及由哪个数据节点来提供服务
B.<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
a.balance 属性负载均衡类型,目前的取值有 4 种:
(1). balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
(2). balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1 ->S1 , M2->S2,并且 M1 与 M2 互为主备),正常情况下, M2,S1,S2 都参与 select 语句的负载均衡。
(3). balance="2",所有读操作都随机的在 writeHost、 readhost 上分发。
(4). balance="3", 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有, 1.3 没有。
B. writeType 属性
负载均衡类型,目前的取值有 3 种:
(1). writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个
writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .
(2). writeType="1",所有写操作都随机的发送到配置的 writeHost。
(3). writeType="2",没实现。
c. switchType 属性,主mysql挂了,从mysql是否提升为主
-1 表示不自动切换
1 默认值,自动切换
2 基于MySQL 主从同步的状态决定是否切换
*注意,必须配置为两个writeHost节点,一个writeHost节点会出现,主mysql挂了,从mysql(readHost)也挂了.