专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 数据库Mycat读写分离中间件

数据库Mycat读写分离中间件

更新时间:2022-12-15 10:55:23 来源:星辉 浏览656次

数据库Mycat读写分离中间件是什么?星辉小编来告诉大家。

mycat实现读写分离(一主一从)

准备工作:

1.准备两台主机安装好mysql

2.能够互相ping通或使用mysql命令(mysql -uroot -p123456 -h 192.168.2.100)能够相互访问

3.mycat的读写分离是基于mysql的主从复制,所以需要先mysql主从复制

下载安装:

http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/

解压后即可使用,在conf文件夹下有三个主要配置文件如下:

1.scheme.xml: 定义逻辑库,表,分片节点等内容。

2.rule.xml: 定义分片规则。

3.server.xml: 定义用户以及系统相关变量,如端口等。

编辑scheme.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="dw-study" />
        <dataHost name="host1" 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="hostM1" url="10.167.19.114:3306" user="root"
                                   password="123456">
                        <!-- can have multi read hosts -->
                        <readHost host="hostS2" url="10.167.19.115:3306" user="root" password="123456" />
                </writeHost>
        </dataHost>
</mycat:schema>

修改server.xml

修改用户名、密码、mycat逻辑数据库名字

快速启动mycat

cd /bin# 启动mycat
./mycat start# 停止mycat./mycat stop

进入mycat

mysql -umycat -p1234 -h10.167.19.114 -P 8066

-u : server.xml中配置的 user

-p : 密码

-h : mycat所在主机

-P: mycat默认端口

双主双从配置

修改 Mycat 的配置文件 schema.xml 修改的balance属性,通过此属性配置读写分离的类型

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

…
<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.140.128:3306" user="root"
 password="123123">
 <!-- can have multi read hosts -->
 <readHost host="hostS1" url="192.168.140.127:3306" user="root"
password="123123" />
 </writeHost>
 <writeHost host="hostM2" url="192.168.140.126:3306" user="root"
 password="123123">
 <!-- can have multi read hosts -->
 <readHost host="hostS2" url="192.168.140.125:3306" user="root"
password="123123" />
 </writeHost>
 </dataHost>
…
#balance="1": 全部的readHost与stand by writeHost参与select语句的负载均衡。
#writeType="0": 所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个
#writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐
#writeHost,重新启动后以切换后的为准,切换记录在配置文件中:dnindex.properties 。
#switchType="1": 1 默认值,自动切换。
# -1 表示不自动切换
# 2 基于 MySQL 主从同步的状态决定是否切换。

以上就是关于“数据库Mycat读写分离中间件”的介绍,大家如果对此比较感兴趣,想了解更多相关知识,不妨来关注一下本站的Mycat教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>