java之MyCAT入门及应用总结

MyCAT的主要作用

1分布式数据库系统中间层(实现读写分离,更好的控制数据库的多个连接池连接问题,屏蔽客户端数据库的变更)
2同时实现关系型和非关系型数据库的连接
3支持读负载均衡
4Mycat支持后端MySQL高可用(通过指定从节点,并不支持从其他从节点对新的主节点进行主从同步)
5实现数据库的垂直拆分和水平拆分

MyCAT的主要应用场景

1、需要进行读写分离的场景( 当一台数据库进行读写混合操作时,数据库性能大幅下降,并且读负载明显高于写负载时,mycat支持多种客户端的mysql集群方案进行读写分离如一主一从,一主多从,主主复制,PXC集群)
2、需要进行分库分表的场景(最大支持1千亿级的单表分片)
3、多租户场景(多用户环境使用不同的系统组件,同时保证数据之间的隔离性)
4、数据统计系统(基于MyCAT的分表能力,处理大规模报表和统计,可以并发的对后端数据库中的数据进行汇总和合并)
5、HBASE的一种替代方案(实际是通过mycat连接MySQL的分布式模拟)
6、需要使用同样的方式查询多种数据库的场景

MyCAT的优势

1、基于阿里的 cobar系统开发
2、开发社区活跃
3、完全开源可以自定义开发
4、支持多种关系型数据库和非关系型数据库
5、使用java开发,可以部署在多种系统上
6、具有在多种行业和项目中的成功案例

MyCAT的概念

1、MyCAT中的数据库是逻辑库而非物理库,实际数据存储在物理库中
2、MyCAT中的数据库通过前端应用看到的表实际就是逻辑表,一个逻辑表可能对应物理库中的多个表

MyCAT的关键特性

1、支持SQL92标准
2、支持多种MySQL集群
3、支持JDBC连接数据库
4、支持NoSQL数据库
5、支持自动故障切换,高可用
6、支持读写分离
7、支持全局表
8、支持独有的基于ER关系的分片策略
9、支持一致性HASH分片
10、多平台支持,部署简单方便
11、支持全局序列号

MyCAT安装

注:对于在Linux系统下运行的软件,最好为每个软件建立独立的系统账号,这样既安全有可以对账号下资源进行相应的限制。
MyCAT安装流程简图

MyCAT启动

Linux下脚本启动:
$MYCAT_HOME/bin/startup_noswarp.sh
当内存不足时可以调整JAVA_OPTS=”-server -Xms1G -Xmx2G -XX:MaxPerSize=64M -XX:+AggressiveOpts -XX:MaxDirectMemorySize=2G”

MyCAT的关键配置文件

1、schema.xml用于配置文件逻辑库表及数据节点

<schema><table></table></schema>定义逻辑库表注:当前只进行读写分离操作而不需要分库分表操作时可以只配置<schema></schema>
<dataNode></dataNode>定义数据节点
<dataHost></dataHost>定义数据节点的物理数据源

2、rule.xml用于配置表的分片规则

<tableRule name="" ></tableRule>定义表使用的分片规则
<function name="" ></function>定义分片算法

3、server.xml用于配置服务器权限

<system><property name=""></property></system>用于定义系统配置
<user></user>用于定义连接MyCAT的用户

MyCAT实现读写分离实操

MyCAT实现读写分离慕课网视频
schema.xml

<mycat:shema xmlns:mycat="http://io.mycat/">
<schema name="USERDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="node1" database="user_db"/>
<dataHost name="node1" maxCon="10000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="10.102.13.3" url="10.102.13.3:3306" user="im_user" password="123456">
<readHost host="10.102.13.4" url="10.102.13.4:3306" user="im_user" password="123456"/>
</writeHost>
<writeHost host="10.102.13.4" url="10.102.13.4:3306" user="im_user" password="123456">
</dataHost>
</mycat:shema>

注:①这里没进行分片分表操作因此只配置了②heartbeat配置心跳监测方式

server.xml

<system>
<property name="serverPort">3306</property>
<property name="managerPort">9066</property>
</system>
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">USERDB</property>
</user>
<user>
<property name="password">123456</property>
<property name="schemas">USERDB</property>
<property name="readOnly">true</property>
</user>

管理MyCAT

使用MySQL客户端管理MyCAT

管理端口9066
连接端口命令:
mysql -uroot -p123456 -h127.0.0.1 -P9066
查看管理端口支持的管理命令:
show @@help;
重新加载配置文件命令:
reload @@config
查看schema.xml中配置的数据节点命令:
show @@datanode;
查看配置的物理数据源命令:
show @@datasource;
查看数据库连接状况命令:
show @@backend;

文章总结自慕课网MyCAT入门及应用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值