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"的内容就可以
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于