MyCAT入门

xiaoxiao2021-02-28  19

注意:读负载均衡用在一主多从的数据库结构;支持后端MySQL高可用并不是指MySQL集群中通过MHA和3M方式实现的复制架构的高可用(MHA和3M方式:主节点宕机后,可以选出新的主节点与其它从节点构成主从关系,可以重新同步数据),而是事先配置一个后备的从节点,当主节点挂掉了,这个从节点替代它,但这个新的主节点和其它从节点不能进行主从同步(也即不能同步数据)

上面提到的一主多从实现的读负载均衡只能减轻读操作的负担,不能解决写的负担。要解决写操作的负担就要将数据库垂直拆分或者水平拆分。

垂直拆分:举个例子,一个电商系统有用户模块、订单模块、支付模块,我们可以把这三个互不影响的模块单独拆分出来,分别形成用户库、订单库、支付库,然后通过MyCAT分别访问这三个数据库,而对于前端应用来说可以抽象成一个数据库来使用。所以数据库中间层可以极大地简化前端应用在数据库拆分之后所做的变更。

水平拆分:就是我们所说的分库分表。首先如果在经过垂直拆分之后,业务量持续增长,拆分后的库不足以满足新的需求(例如用户越来越多),这时就需要通过一定的规则进行水平拆分,比如把一个用户库拆分成3个(或更多个)用户库,并通过一定的规则切分(比如通过对user_id取模来进行切分,来均匀地分到三个用户库中),库拆分之后的3个库中的表结构是完全一样的。而我们的前端应用就通过MyCAT以及我们的切分规则来对我们后端切分后的数据库来进行访问(这种访问的逻辑只需要交给MyCAT,如果不通过MyCAT进行这种数据的访问,就需要对每个前端应用实现切分的逻辑,所以说MyCAT可以帮助我们统一地实现这种切分的逻辑,而不用在每个前端应用分别实现)

综上,MyCAT的主要作用有3个:实现数据库的读写分离、实现数据库的垂直拆分以及水平拆分。

所以MyCAT的应用场景有: (1)需要进行读写分离的场景(往同一台数据库服务器进行读写混合操作时性能大幅下降,且读负载远大于写负载):MyCAT支持多种MySQL集群方案来进行读写分离(比如一主一从、一主多从、主主复制、PXC集群等) (2)需要分库分表的场景:支持对于超过一千万个表进行分片,最大支持一千亿单表进行分片 (3)多租户场景:多用户环境下使用共同的数据库组件,并保证各个用户之间数据具有一定的隔离性;每一个应用可以访问一个库,但应用程序只连接MyCAT,从而不需要改造程序本身。常见的场景是云服务 (4)数据统计系统:MyCAT的分表能力可以处理大规模的报表系统,可以并发地对后端数据库的数据进行会拢然后再进行合并。适用于一些例如网报系统、海量数据实时查询 (5)HBASE(基于Hadoop的分布式的列数据存储数据库)的一种替代方案:通过MyCAT的垂直和水平切分,实现数据的分布式存储 (6)需要使用同样的方式查询多种数据库的场景:MyCAT支持MySQL、Oracle等关系型数据库以及MongoDB等非关系型数据库,对于前端应用来说可以隐藏后端数据库的种类,而使用同样的方式使用多种数据库。

MyCAT的基本概念:逻辑库、逻辑表

MyCAT的关键特性:

安装:

下载目录: http://dl.mycat.io/1.6.5/

使用软件之前最好新建一个用户,不要直接用root用户(不安全)。 根目录下输入命令:

adduser mycat

把下载好的mycat压缩包上传到虚拟机,然后解压:

tar zxf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C ~/app/

这时,app目录多了一个mycat文件夹,安装成功。 下一步是更改软件的属主(参考:http://blog.csdn.net/z_dianjun/article/details/50819855): ①先移动mycat文件夹到 /usr/local 下,使用ls -lh指令查看mycat的属主: ②使用chown指令(指定了属主、属组,最后一个参数是文件目录):

chown mycat:mycat -R mycat

然后再查看mycat的属主:

接下来要修改mycat的环境变量(Java已事先安装和配置好):

vi ~/.bash_profile

在最后加上两行配置:

下面开始启动MyCAT:

先切换用户(su命令参考:http://blog.csdn.net/y694721975/article/details/54924884):

su - mycat

若这时执行startup_nowrap.sh,会报java环境找不到的错误,原因是切换后的用户的环境变量没有配置好,而这个原因是因为之前配置环境变量的方式是只针对root用户,这里更改一种环境变量的配置方式,先exit回到root用户,然后输入以下命令:

vi /etc/profile

在最后加上四行配置: 使用source命令使它立即生效。

并把jdk目录复制到/usr下(之前是放在了root目录下,切换用户后无法访问) 这时切换到mycat用户就能正常使用mycat的启动命令:

下面开始MyCAT的配置:

转载请注明原文地址: https://www.6miu.com/read-2250240.html

最新回复(0)