一、 读写分离
1、 配置文件修改
- 修改配置文件schema.xml
<?xml version=”1.0″?>
<!DOCTYPE mycat:schema SYSTEM “schema.dtd”>
<mycat:schema xmlns:mycat=”http://io.mycat/”>
<schema name=”TESTDB” checkSQLschema=”false” sqlMaxLimit=”100″ dataNode=”dn1″>
</schema>
<dataNode name=”dn1″ dataHost=”host1″ database=”atguigu_mc” />
<dataHost name=”host1″ maxCon=”1000″ minCon=”10″ balance=”2″
writeType=”0″ dbType=”mysql” dbDriver=”native” switchType=”1″ slaveThreshold=”100″>
<heartbeat>select user()</heartbeat>
<writeHost host=”hostm1″ url=”192.168.67.1:3306″ user=”root”
password=”123123″>
<!–读库(从库)的配置 –>
<readHost host=”hosts1″ url=”192.168.67.131:3306″ user=”root”
password=”123123″>
</readHost>
</writeHost>
</dataHost>
</mycat:schema>
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″,所有读请求随机的分发到 readhost 执行,writerHost 不负担读压力
Java培训Mycat实现读写分离
2、重启Mycat
重启Mycat,让新配置生效
3、验证
- 创建表
create table t_replica
( id int auto_increment ,
name varchar(200)
);
Java培训Mycat实现读写分离
- 插入数据
分别在两个库下插入:insert into t_replica(name) values (@@hostname);
Java培训Mycat实现读写分离
- 验证
然后再mycat下执行:select * from t_replica;
能够验证读写分离。