(3)Mycat实现mysql的主从读写分离

1.修改配置文件

/usr/local/mycat/conf/schema.xml

usr/local/mycat/conf/server.xml

 

修改的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 不负担读压力

为了双主双从读写分离balance设置为1

#balance="1": 全部的readHost与stand by writeHost参与select语句的负载均衡。

#writeType="0": 所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个

#writeType="1",所有写操作都随机的发送到配置的writeHost,1.5 以后废弃不推荐

#writeHost,重新启动后以切换后的为准,切换记录在配置文件中:dnindex.properties 。

#switchType="1": 1 默认值,自动切换。

-1 表示不自动切换

2 基于MySQL 主从同步的状态决定是否切换。

<?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="copydb" />
	
	<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="172.16.94.131:3306" user="root"
				   password="Zan_123456">
			
			<readHost host="hostS1" url="172.16.94.132:3306" user="root" password="Zan_123456" />
		</writeHost>
		
	</dataHost>

</mycat:schema>
<user name="mycat" defaultAccount="true">
		<property name="password">zan123456</property>
		<property name="schemas">TESTDB</property>
	</user>

 

2.重启mycat

 

3.登录mycat数据管理

[root@shuidi01 mysql]# mysql -umycat -pzan123456 -P 8066 -h 127.0.0.1

 

4.验证读写分离

#在写主机Master1数据库表mytb中插入带系统变量数据,造成主从数据不一致

mysql> INSERT INTO mytb VALUES(3,@@hostname);
Query OK, 1 row affected, 1 warning (0.01 sec)

 

5.mycat 的查询随机切换

 

ali-shuidi01只能查出 他自己的

 

ali-shuidi02只能查出 他自己的

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值