mycat参考

mycat 信息

  • 默认端口: 8066
  • git地址:https://github.com/MyCATApache/Mycat-Server.git
  • 逻辑库,表、分片节点等内容:MYCAT_HOME/conf/schema.xml 中定
  • 分片规则:MYCAT_HOME/conf/rule.xml 中定
  • mycat用户,系统变量:MYCAT_HOME/conf/server.xml 中定

mycat读写分离配置

  • 方案1
  1. server.xml 配置:配置mycat的用户名,密码和权限等
			<user name="mycat">
		​    	<property name="password">mycat</property>
		​    </user>
  1. schema.xml配置:配置逻辑库,读写分离等
<schema name="test" checkSQLschema="false" sqlMaxLimit="100"  dataNode="dn1">
<!-- 配置需要分片的表 ,如果只需要读写分离,则不用配置表-->
</schema>
​     <dataNode name="dn1" dataHost="localhost1" database="test" />
​     <!-- 主要配置,balance="3" 表示仅从writeHost 中的readHost 读取数据,writeType="0"表示写操作只发生在第一个writeHost中,
​             switchType="-1" 表示主从不自动切换 -->
​     <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="-1"  slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="M1" url="127.0.0.1:3307" user="root" password="root2">
<!-- can have multi read hosts -->
<readHost host="S1" url="127.0.0.1:3306" user="root" password="root" />
</writeHost>
</dataHost>

说明:主节点挂掉以后,子节点也不能查询,不能自动切换为主节点

  • 方案2
  1. schema.xml配置
			<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" 
		​		dbDriver="native" switchType="1"  slaveThreshold="100">
	   ​         <heartbeat>select user()</heartbeat>
	   ​         <writeHost host="M1" url="127.0.0.1:3306" user="root" password="root"></writeHost>
	   ​         <writeHost host="S2" url="127.0.0.1:3307" user="root" password="root2" />
	   ​         <writeHost host="S3" url="127.0.0.1:3308" user="root" password="root3" />
	   ​     </dataHost>

只有主节点在写数据,读操作在所有子节点中随机,如果主节点挂掉,那么从节点之一变为主节点承担写操作,读操作从其他节点中随机,当原主节点恢复正常,则成为子节点。

mycat 读写分离配置 + 分库分表

<schema name="test" checkSQLschema="false" sqlMaxLimit="100"  dataNode="dn1">
 <!-- 配置需要分片的表 -->
 <table name="mycat" dataNode="dn1,dn2" rule="auto-sharding-long" />
 </schema>
<dataNode name="dn1" dataHost="localhost1" database="test" />
<dataNode name="dn2" dataHost="localhost1" database="test2" />
<dataHost name="localhost1" 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="M1" url="127.0.0.1:3306" user="root" password="root"></writeHost>
 <writeHost host="S2" url="127.0.0.1:3307" user="root" password="root2" />
 <writeHost host="S3" url="127.0.0.1:3308" user="root" password="root3" />
</dataHost>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值