利用MyCat中间件实现读写分离
需要两步:
1、搭建MySQL主从复制环境
2、配置MyCat读写分离策略
一、搭建MySQL主从环境
参考上一篇博文:MySQL系列之七:主从复制
二、配置MyCat读写分离策略
本篇只讨论MyCat读写分离,有关的配置文件schema.xml 和 server.xml(暂且不谈分库分表、性能优化)。
1、schema.xml文件
MyCat作为中间件,它只是一个代理,本身并不进行数据存储,需要连接后端的MySQL物理服务器,此文件就是用来连接MySQL服务器的!~(当然分库分表策略、分片节点也在此文件中,暂且不谈)
先看一个完整配置的例子:【请注意修改自己的MySQL连接信息】
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="mycatdb" checkSQLschema="false" sqlMaxLimit="100">
<!-- 自动取模分片 -->
<table name="t_person" dataNode="dn1,dn2,dn3" rule="mod-long" />
<!-- 一致性hash分片,分片列不要使用MySQL原生函数 -->
<table name="t_user" primaryKey="id" dataNode="dn1,dn2" rule="sharding-by-murmur" />
<!-- 全局表 -->
<table name="province" type="global" dataNode="dn1,dn2,dn3" />
<!-- E-R关系分片 -->
<table name="customer" dataNode="dn1,dn2,dn3" rule="auto-sharding-long-customer">
<childTable name="orders" joinKey="customer_id" parentKey="id"/>
</table>
<!-- E-R关系分片,多表 -->
<table name="user" primaryKey="id" dataNode="dn1,dn2" rule="mod-long-test">
<