什么是mycat
mycat关键特性
1、这里是在mysql主从复制实现的基础上,利用mycat做读写分离,架构图如下:
2、demo
2.1 在mysql master上创建数据库创建db1
2.2 在数据库db1创建表student
同时,因为配置好了mysql主从复制,在mysql slave上也有一样数据库和表
2.3 编辑 mycat的配置文件server.xml
<!--表示mycat的登录用户名--> <user name="test"> <!--表示mycat的登录密码--> <property name="password">test</property> <!--表示mycat的逻辑数据库名称,可以自定义--> <property name="schemas">testdb</property> </user> <user name="user"> <property name="password">user</property> <property name="schemas">testdb</property> <property name="readonly">true</property> </user>
2.4编辑mycat的配置文件schema.xml
<!--testdb表示mycat的逻辑数据库名称 当schema节点没有子节点table的时候,一定要有datanode属性存在(指向mysql真实数据库), --> <schema name="testdb" checksqlschema="false" sqlmaxlimit="100" datanode="dn1"> </schema> <!--指定master的数据库db1--> <datanode name="dn1" datahost="192.168.0.4" database="db1" /> <!--指定mastet的ip --> <datahost name="192.168.0.4" maxcon="1000" mincon="10" balance="3" writetype="0" dbtype="mysql" dbdriver="native" switchtype="1" slavethreshold="100"> <!--表示mysql的心跳状态--> <heartbeat>select user()</heartbeat> <!-- master负责写 --> <writehost host="hostm1" url="192.168.0.4:3306" user="root" password="admin"> <!--slave负责读--> <readhost host="hosts2" url="192.168.0.5:3306" user="root" password="admin" /> </writehost> </datahost>
到这里,利用mycat做读写分离就已经配置完了
注意 datahost节点的下面三个属性
balance, switchtype, writetype
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",所有读请求随机的分发到writehost下的readhost执行,writehost不负担读压力
writetype表示写模式
writetype="0",所有的操作发送到配置的第一个writehost
writetype="1",随机发送到配置的所有writehost
writetype="2",不执行写操作
switchtype指的是切换的模式,目前的取值也有4种:
switchtype=‘-1‘ 表示不自动切换
switchtype=‘1‘ 默认值,表示自动切换
switchtype=‘2‘ 基于mysql主从同步的状态决定是否切换,心跳语句为show slave status
switchtype=‘3‘基于mysql galary cluster的切换机制(适合集群)(1.4.1),心跳语句为show status like ‘wsrep%‘。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
MySQL Innodb 存储结构 和 存储Null值 用法详解
网友评论