Mycat 双主双从实现读写分离

本文详细介绍了如何使用Mycat实现MySQL数据库的读写分离,通过配置schema.xml文件,设置不同服务器角色,包括主服务器和从服务器,实现数据的均衡分布。文章解释了balance参数的不同值对读写策略的影响,以及writeType参数如何决定写操作的分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇博客我们已经实现了 mysql 数据库的双主双从的搭建,今天应粉丝的要求,用mycat 实现数据库的读写分离。

角色ip 地址简称
Master1192.168.183.134134 主
Slave1192.168.183.133133 从
Master2192.168.183.128128 主,mycat 服务器
Slave2192.168.183.135135 从

在这里插入图片描述
修改schema.xml配置文件,直接删除 rm -rf schema.xml然后编辑 vi 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="testdb" />
	<dataHost name="host1" maxCon="1000" minCon="10" balance="1"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!-- can have multi write hosts -->
		<writeHost host="hostM1" url="192.168.183.128:3306" user="root"
				   password="root">
			<!-- can have multi read hosts -->
			<readHost host="hostS1" url="192.168.183.135:3306" user="root" password="root" />
		</writeHost>
                <writeHost host="hostM2" url="192.168.183.134:3306" user="root"
                                   password="root">
                        <!-- can have multi read hosts -->
                        <readHost host="hostS2" url="192.168.183.133:3306" user="root" password="root" />
        </writeHost>
	</dataHost>
</mycat:schema>

定位到bin目录,启动mycat ./mycat console
在这里插入图片描述

数据库负责均衡策略 balance="1"

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”,所有读请求随机的分发到 readhost 执行, writerHost 不负担读压力写策略:

数据库的读写策略:writeType="0"

writeType=“0”: 所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个
writeType=“1”,所有写操作都随机的发送到配置的 writeHost, 1.5 以后废弃不推荐
writeHost,重新启动后以切换后的为准,切换记录在配置文件中:dnindex.properties 。

数据库主备切换策略 switchType="1"

1 默认值,自动切换。
-1 表示不自动切换
2 基于 MySQL 主从同步的状态决定是否切换。

我们在 master 1 128主服务器上插入一条数据

明天完成,出了点问题,mycat 只能远程本地的mysql,无法远程其它服务器的mysql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值