码迷,mamicode.com
首页 > 其他好文 > 详细

mycat 读写分离

时间:2017-11-01 15:05:07      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:hit   stop   bin   开启   art   style   也有   请求   line   

1。安装jdk。http://note.youdao.com/noteshare?id=b0349bf30b1e415372a6fcb61f2f1629

2。下载mycat,解压到/usr/local目录

3。事先配置好mysql的主从复制。

4。配置conf/server.xml

<property name="useSqlStat">1</property> <!-- 1为开启实时统计、0为关闭 -->

这个地方默认为0,改成1,如果不改,mycatweb监控中sql监控不起作用

<user name="root">

<property name="password">123456</property>

<property name="schemas">Test1</property>

(有多个数据库可以添加多个逻辑库)逻辑库,这里的逻辑库名要和schema.xml里名字一致

</user>

?

<user name="user">

<property name="password">user</property>

<property name="schemas">Test1</property>

<property name="readOnly">true</property>

</user>

5。配置conf/scheam.xml

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

配置逻辑库,name必须与server.xml相同,dataNode为物理节点,要与下面的dataNode的name属性一致。

<dataNode name="dn1" dataHost="localhost1" database="Test1" />

物理节点dataHoset为下面dataHost的标识,两处要一致。database为物理数据库

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="2" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">

<heartbeat>show slave status</heartbeat>

心跳语句,不同的switchType心跳语句不同,详见下文描述

<!-- can have multi write hosts -->

?

<writeHost host="hostM1" url="192.168.101.148:3306" user="root" password="">

写节点,ip,用户,密码 。

<!-- can have multi read hosts -->

<readHost host="hostS1" url="192.168.101.147:3306" user="root" password="123456" />

读节点,ip,用户,密码。

<readHost host="hostS2" url="192.168.101.149:3306" user="root" password="123456" />

</writeHost>

<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->

多个写节点的情况下配置多个writehost

</dataHost>

? 这里需要注意的是 balance, switchType, writeType

balance指的负载均衡类型,目前的取值有4种:

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

balance="1",全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。

balance="2",所有读操作都随机的在writeHost、readhost上分发。

balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力

writeType表示写模式

writeType="0",所有的操作发送到配置的第一个writehost

writeType="1",随机发送到配置的所有writehost

writeType="2",不执行写操作

switchType指的是切换的模式,目前的取值也有4种:

switchType=‘-1‘ 表示不自动切换

switchType=‘1‘?默认值,表示自动切换 心跳语句为 select user()。此处小心配置,被坑过一次

switchType=‘2‘?基于MySQL主从同步的状态决定是否切换,心跳语句为show slave status

switchType=‘3‘基于MySQL galary cluster的切换机制(适合集群),心跳语句为show status like ‘wsrep%‘。

?

6。mycat命令

完成后进入bin文件,

./mycat start 启动mycat

./mycat stop 关闭mycat

./mycat status 查看mycat运行状态。

7。端口

mycat有两个端口,一个是8066,一个是9066,其中9066是管理端口,8066是数据端口,我之前一直登录管理端口,show ?tables;时不能成功执行,后来才 发现登录8066才行。

客户端链接mycat与链接mysql方式一样。不过端口不是默认的3306,而是8066

mysql -h 127.0.0.1 -u root -p -P8066

mycat 读写分离

标签:hit   stop   bin   开启   art   style   也有   请求   line   

原文地址:http://www.cnblogs.com/baogechen/p/7765966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!