MyCat1.6.7.3安装及基础概念介绍[CentOS7] 5
Posted 小耶哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyCat1.6.7.3安装及基础概念介绍[CentOS7] 5相关的知识,希望对你有一定的参考价值。
1.MyCat基础概念介绍;
本来想去维基看下mycat的说明, 发现就这样了;
MyCat是一个开源的分布式数据库系统。
MyCat使用mysql原生的协议与多个MySQL服务之间进行通信。
MyCat最开始是基于阿里开源组件Cobar二次迭代开发。
1.后端由BIO改为NIO,并发量有大幅提高
2.增加了对Order By、Group By、limit等聚合功能的支持(,虽然Cobar也可以支持Order By、Group By、limit语法,但是结果没有进行聚合,只是简单返回给前端,聚合功能还是需要业务系统自己完成)。
MyCat支持多样化, 不仅仅是MySQL, Oracle,SqlServer,DB2等主流的数据库,也支持MongoDB这种NoSql数据库。
Postgresql也已经实现了, 本系列的最后, 小耶哥将会实战一把PG的水平切分;
DBA MyCat
对于普通的开发人员来讲, MyCat可以当做MySQL,而MyCat后面连接的是MySQL,可以理解为MySQL中的存储引擎。
比如:MylSAM、InnoDB等。
所以,有一点MyCat本身不存储数据,数据都是存储在MyCat后面连接的MySQL上,数据的可靠性和事务都是MySQL保证的。
Developers MyCat
MyCat就是一个近似等于MySQL的数据库库服务,你可以使用连接MySQL的方式连接MyCat。
绝大多数情况,你也可以使用常用的ORM框架连接MyCat,但是,对于分片的表,还是建议使用标准SQL语句,这样能够达到最佳的性能。
Architect MyCat
MyCat是一个强大的数据库中间件,不仅仅可以用作读写分离、分库分表,还可以用于容灾备份,云平台建设等,让你的架构具备很强的适应性和灵活性。
在实际的开发中,开发人员不需要知道数据库中间件的存在,开发人员只需要有数据库的概念就可以了。
所以数据库中间件可以被看做是一个或者多个数据库集群构成的逻辑库。
有逻辑库,就会有逻辑表,对于应用系统来说,读写数据的表,就是逻辑表。逻辑表的数据被水平切分以后, 分不到不同的分片库中。
比如:
假设商品库中有一张商品表(c3_product),这个商品表就被称为逻辑表,而商品表又被水平切分为10张表,每一张表中都存储一部分商品数据。业务系统在进行用户商品的读写时,只需要操作逻辑表就可以了,后面的分片细节则由MyCat进行操作,这些对于业务开发人员来说时完全透明的。
还有另外一种情况,并不是每张表都需要分片, 有些表就不需要, 数据总量不大, 存储在一个库中完全ok, 所以这类表我们一般把它叫做非分片表。
而那些需要我们做切分的表一般我们把它叫做分片表。
在我们平时的业务系统开发中,有一些的字典表,一般来说这些表我们就把它叫做非分片表, 且不需要切分;
比如:
查询支付订单时,需要把支付状态关联查出,如果支付表做了分片,分布在不同的数据库中,而支付状态表切分,我们查询的时候就要跨库关联查询订单状态,增加了不必要的查询损耗,不如把支付状态表冗余到所有的支付订单分片库中,这样关联查询就不需要跨库。再比如, 省市区域表也可以冗余一份到各个分片库中;
我们把这种通过数据冗余方式复制到所有的分片库中的表,叫做全局表。
数据被切分后,一张大表被分到不同的分片数据库上面,每个分片表所在的数据库就叫做分片节点。
数据切分后,每一个分片节点不一定都会占用一个真正的物理主机,会存在多个分片节点在同一个物理主机上的情况,这些分片节点所在的主机就叫做节点主机。为了避免单节点并发数的限制,尽量将读写压力高的分片节点放在不同的节点主机上。
一个大表被拆分成多个分片表,就需要一定的规则,按照某种业务逻辑,将数据分到一个确定的分片当中,这个规则就叫做分片规则。
常用的有, 分片枚举, 固定分片hash算法, 范围约定, 取模, 按日期等等。
所谓全局序列号就是利用一种规则生成不重复的id做为数据库的主键, 以此来保证数据的唯一标识。诸如此类的算法有很多, 比较有名的雪花算法等等;
2.MyCat1.6.7.3安装
下面正式进入MyCat的安装实战
MyCat安装可谓十分简单, 一分钟就可以学会
下载MyCat, centOS7 安装 MyCat
http://dl.MyCat.org.cn/1.6.7.3/20190927161129/MyCat-server-1.6.7.3-release-20190927161129-linux.tar.gz
放在 /opt 目录, 利用rz命令上传并解压至当前文件夹
tar -zxvf MyCat-server-1.6.7.6-release-20210303094759-linux.tar.gz
MyCat启动
进入到MyCat目录 cd /opt/MyCat
./bin MyCat start
或者
./bin MyCat console
3.环境版本及拓扑图## 3.1环境版本
MySQL Ver 8.0.24 for Linux on x86_64,
MyCat-server-1.6.7.3,
VMware
Linux CentOS7
Jdk1.8
Springboot 2.1.8.RELEASE
环境这块我们使用的是CentOS7;
MySQL则采用8.0版本, 毕竟已经MySQL8已经发布好几年了, 已经有很多公司在使用8.0的版本了, 不过小耶哥所在的单位MySQL版本还是5.7;
本文主要是演示一下mycat相关属性, 并未对其高可用做深入探讨,故而此处用一台mycat路由到另外两台MySQL[master], 两台master各自同步binlog日志到slave, 完成主从同步;
微信支付专题
参考资料
1 | MySQL官网
责编 | 小耶哥
本期作者 | 小耶哥
平台建设及技术支持 | 小耶哥
以上是关于MyCat1.6.7.3安装及基础概念介绍[CentOS7] 5的主要内容,如果未能解决你的问题,请参考以下文章