MyCat高可用集群(一)MyCat的安装,实现数据读写分离

MyCat高可用集群

第一章 安装MyCat,实现数据读写分离

第二章 搭建MySQL双主双从服务器

第三章 数据库垂直拆分——分库

第四章 数据库水平拆分——分表

第五章 基于HAProxy的MyCat高可用集群

第六章 Mycat监控——Mycat-web

第七章 Mycat安全设置



前言

Mycat是数据库中间件。
中间件:是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟通。
数据库中间件:连接应用程序和数据库。

mycat(前身是阿里的cobar)支持的数据库包括mysql、Oracle、SQLServer、DB2等主流关系型数据库,也支持非关系型数据库,key-value型的reids、memcache,面向文档型的mongoDB,面向列的HBase等。其核心功能是分库分表,满足大数据量存储,提高查询性能。


一、环境准备

三台CentOS7虚拟机
一台安装mycat,M1、S1实现主从备份

名称 服务器名 IP
MyCat centos7_1 192.168.80.70
M1 localhost.localdomin 192.168.80.20
S1 CentOS7 192.168.80.80

二、安装JDK

1.下载JDK和MyCat安装包

JDK官网下载地址:https://www.oracle.com/cn/java/technologies/javase-jdk15-downloads.html
MyCat官方下载地址:http://www.mycat.org.cn/
在这里插入图片描述
在这里插入图片描述

2.安装JDK

mycat是用JAVA开发的数据库中间件,安装mycat前要先安装Java运行环境。
将下载好的JDK包传到服务器

#解压文件,修改配置文件,在后面添加配置

vim /etc/profile

export JAVA_HOME
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在第一篇文章中,我们介绍了如何使用Mycat实现可用数据库集群,包括Mycat安装和配置,以及MySQL主从复制的设置。在本文中,我们将继续介绍如何使用Mycat来提数据库的可用性。 1. 使用Mycat实现分离 在上一篇文章中,我们已经将MySQL数据库设置成了主从复制,主库用于操作,从库用于操作。在Mycat中,我们可以使用分离来进一步提数据库的性能和可用性。 首先,需要在Mycat的server.xml配置文件中添加分离的配置: ``` <system> <property name="balanceType">1</property> <property name="writeType">0</property> <property name="readType">1</property> </system> ``` 其中,balanceType表示负载均衡的方式,1表示使用轮询算法;writeType表示操作的路由方式,0表示直接路由到主库;readType表示操作的路由方式,1表示路由到从库。 然后,在Mycat的schema.xml配置文件中,需要为每个表指定分离的规则,例如: ``` <table name="user"> <rule> <columns>id</columns> <algorithm>modula(#id, 2)</algorithm> </rule> <childTable /> <rule> <columns>id</columns> <algorithm>modula(#id, 2)</algorithm> </rule> </table> ``` 其中,<columns>指定用于路由的列,<algorithm>指定路由算法。在上面的例子中,我们使用modula算法将id为奇数的记录路由到从库1,将id为偶数的记录路由到从库2。 2. 使用Mycat实现分库分表 当单个数据库无法满足应用程序的需求时,我们可以通过分库分表的方式来扩展数据库的容量和性能。在Mycat中,可以通过配置schema.xml文件来实现分库分表。 首先,需要在Mycat的server.xml文件中添加数据源的配置: ``` <dataHost name="ds0" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="host1" url="jdbc:mysql://host1:3306/test" user="root" password="123456"/> <readHost host="host2" url="jdbc:mysql://host2:3306/test" user="root" password="123456"/> <readHost host="host3" url="jdbc:mysql://host3:3306/test" user="root" password="123456"/> </dataHost> ``` 其中,name属性指定数据源的名称,maxCon和minCon指定连接池的大小,writeType和readType指定路由方式,dbType指定数据库类型,dbDriver指定数据库驱动,switchType指定连接池的切换方式,slaveThreshold指定从库的阈值,heartbeat指定心跳SQL。 然后,在schema.xml文件中,需要为每个表设置分库分表的规则,例如: ``` <table name="user" dataNode="dn1,dn2"> <rule> <columns>id</columns> <algorithm>modula(#id, 2)</algorithm> </rule> <childTable /> <rule> <columns>id</columns> <algorithm>modula(#id, 2)</algorithm> </rule> </table> <dataNode name="dn1" dataHost="ds0" database="test1" /> <dataNode name="dn2" dataHost="ds0" database="test2" /> ``` 其中,<dataNode>指定数据节点的配置,name属性指定节点名称,dataHost属性指定数据源名称,database属性指定数据库名称。在上面的例子中,我们使用modula算法将id为奇数的记录路由到dn1节点,将id为偶数的记录路由到dn2节点。 3. 总结 通过使用Mycat实现分离和分库分表,我们可以进一步提数据库的可用性和性能。除此之外,Mycat还支持水平和垂直扩展、数据备份和恢复等功能,可以满足各种应用场景的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值