MyCat 配置读,写分离有两种形式:
- mariadb-master 负责写入,不负责读取,由 mariadb-slave 负责读取;
- mariadb-master 负责写入,同时与 mariadb-slve 仪器分摊读取的压力
如果要实现 MyCat 配置必须要考虑到各种的选项。本次一共要使用到如下的几台主机:
No. | 主机名称 | IP 地址 | 描述 |
---|---|---|---|
1 | server-master | 192.168.31.128 | MariaDB 服务(master) |
2 | server-slave | 192.168.31.129 | MariaDB 服务(slave) |
2 | mycat-server-01 | 192.168.31.130 | MyCat 服务 |
1.【mycat-server-01】 修改 schema.xml 文件:
vim /usr/local/mycat/conf/schema.xml;
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!-- 定义一个MyCat的模式,此处定义了一个路基数据库名称TestDB -->
<!-- “checkSQLschema”:描述的是当前的连接是否需要检测数据的模式 -->
<!-- “sqlMaxLimit”:表示返回的最大的数据量的行数 -->
<!-- “dataNode="dn1"” :该操作使用的数据节点是dn1的逻辑名称 -->
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"/>
<!-- 定义个数据的操作节点,以后这个节点会进行一些苦逼哦分离使用 -->
<!-- dataHost="localhost1" :定义数据节点的逻辑名称 -->
<!-- database="zsl":定义数据界定啊要使用的数据库名称 -->
<dataNode name="dn1" dataHost="localhost1" database="zsl" />
<!-- 定义数据节点,包括了各种逻辑项的配置 -->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="2"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<!-- 配置真实 MySQL与MyCat的心跳 -->
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<!-- 配置真实的MySQL的连接路径 -->
<writeHost host="hostM1" url="192.168.31.128:3306" user="root"
password="hahaha">
<readHost host="hostS1" url="192.168.31.129:3306" user="root" password="hahaha" />
</writeHost>
</dataHost>
</mycat:schema>
对于读写分离核心的几个选项:balacne , writeType , switchType;
- 通过 readHost 读取,社会:"balance=3";
- 让 writeHost 与 readHost 共同分担,设置"balance=2"
2.【mycat-server-01】启动 mycat 服务:
/usr/local/mycat/bin/mycat console;
3.【server-*】随便找到一台具有 mysql 数据库的主机,登录 mycat 服务:
- 登录 mycat 服务器:mysql -uroot -p123456 -h192.168.31.130 -P8066 -DESTDB;
- 为了方便观察室哪一个数据库查询出来的数据,保存一条新的内容,记录主机名称:
INSERT INTO member(mid,name)VALUES('hello',@@hostname);
此时记录主机名称,而后设置不同的"blance"的内容就可以
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于