数据库中间件mycat 读写分离

mycat安装

首先在官网下载mycat,官网地址:http://mycat.org.cn/

下载地址:http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/
在这里插入图片描述

上传至centos7中。
解压

tar -zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz

mycat软件目录构成:
在这里插入图片描述

conf 目录下存放配置文件,server.xml 是Mycat 服务器参数调整和用户授权的配置文 件,schema.xml 是逻辑库定义和表以及分片定义的配置文件,rule.xml 是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置 文件修改,需要重启Mycat 或者通过9066 端口reload。
在这里插入图片描述

lib 目录下主要存放mycat 依赖的一些jar 文件。

尝试启动mycat服务

bin/mycat start

查看是否启动成功
在这里插入图片描述
已经成功启动。

读写分离配置

schema.xml 中配置逻辑库、数据节点,数据主机:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	<!-- 注意:里面的元素一定要按 schema 、dataNode 、 dataHost的顺序配置,name属性值为逻辑库名 -->
	<schema name="testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
	 <!--配置数据节点,database为数据节点中的数据库中的真实名字-->
	<dataNode name="dn1" dataHost="dhost1" database="testdb" />
	 <!--配置datahost的信息,连接数据库的配置-->
	<dataHost name="dhost1" maxCon="1000" minCon="10" balance="1"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!--配置服务器ip和数据库端口,用户名和密码,用于写数据-->
		<writeHost host="hostM1" url="192.168.130.128:3306" user="root" password="qwe123">
			<!--配置服务器ip和数据库端口,用户名和密码,用于读数据-->
			<readHost host="hostS2" url="192.168.130.129:3306" user="root" password="qwe123" />
		</writeHost>
	</dataHost>
</mycat:schema>

Balance参数设置:

1. balance=“0”, 所有读操作都发送到当前可用的writeHost上。

2. balance=“1”,所有读操作都随机发送到当前的writeHost对应的readHost和备用的writeHost

3. balance=“2”,所有读操作都随机的在writeHost、readhost上分发
    
4. balance=“3”,所有读请求随机的分发到wiriterHost 对应的readhost 执行

WriteType参数设置:

1. writeType=“0”, 所有写操作都发送到可用的writeHost上。

2. writeType=“1”,所有写操作都随机的发送到readHost。

3. writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。

server.xml配置

修改用户配置,name="schemas"和前面配置的schemas.xml中的name对应

<user name="root" defaultAccount="true">
	 <property name="password">123456</property>
	 <property name="schemas">testdb</property>
</user>

这里的两个mysql服务我主动停止了主从复制,所以两个数据库中数据不一致。便于我们看到效果。
首先是主数据库(用于写):
ip 192.168.130.128
database testdb
table t_order
在这里插入图片描述

从数据库(用于读)
ip 192.168.130.129
database testdb
table t_order
在这里插入图片描述

navicate连接

到 conf/server.xml 中查看用户名和密码
在这里插入图片描述
mycat默认的服务端口为8066,管理端口为9066
在这里插入图片描述
连接成功,Mycat 对我们的应用来说,就是一个数据库!
在这里插入图片描述
查看表

在这里插入图片描述
可以看到读取到的是从数据库中的记录。
然后手动插入一条数据
在这里插入图片描述
查看主数据库,发现数据插入成功
在这里插入图片描述
查看从数据库,没有数据增加
在这里插入图片描述
查看mycat数据库,同样没有数据增加,因为是读取的从数据库的记录
在这里插入图片描述
这就实现了读写分离,当然,实际应用中我们需要开启主从复制哦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值