mycat 读写分离

安装jdk

http://note.youdao.com/noteshare?id=b0349bf30b1e415372a6fcb61f2f1629

 

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

 

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

 

配置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

posted on 2017-11-01 13:46  baogechen  阅读(154)  评论(0)    收藏  举报

导航