返回顶部
首页 > 资讯 > 数据库 >Mycat的安装配置
  • 947
分享到

Mycat的安装配置

2024-04-02 19:04:59 947人浏览 八月长安
摘要

什么是Mycat至于什么是Mycat,可能在不同的角色下有不同的理解。对Mysql架构有过了解的话,都知道mysql实际上是由Server层和存储引擎层组成的。所以对于DBA来说,Mycat 就是 Mysq

什么是Mycat

至于什么是Mycat,可能在不同的角色下有不同的理解。对Mysql架构有过了解的话,都知道mysql实际上是由Server层和存储引擎层组成的。所以对于DBA来说,Mycat 就是 Mysql 的Server层。而 Mycat 后面连接的 MySQL Server,就好象是 MySQL 的存储引擎。因此,Mycat 本身并不存储数据,数据是在后端的 MySQL 上存储的,因此数据的可靠性
以及事务等依旧是 MySQL 保证的。

对于开发人员来说,Mycat基本等同于MySQL。因为完全可以使用连接MySQL的方式去连接Mycat,除了默认端口不同之外,连接方式上没有区别。所以Mycat对于开发人员来说是透明的,只不过在SQL的使用上有一些限制。

而对于架构师来说,Mycat 是一个数据库中间件,可以用作读写分离、分表分库以及容灾备份等。对于使用Mycat的应用来说,其隐藏了数据库的存储逻辑。让我们无需在代码上去对读写分离等存储逻辑进行控制,从而达到不修改应用代码的前提下,扩展数据库架构。

由于Mycat是国内的开源项目,有非常完善且丰富的中文文档。所以本文就不对基础概念进行赘述了,建议参考Mycat权威指南在线版或到Mycat官网中了解更多关于Mycat的内容。


什么是数据库中间件

数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。由于对数据进行分片处理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集群构成了整个完整的数据库存储。

Mycat的安装配置

如上图所表示,数据被分到多个分片数据库后,应用如果需要读取数据,就要需要处理多个数据源的数据。

如果没有数据库中间件,那么应用将直接面对分片集群。那么数据源切换、事务处理以及数据聚合等问题都需要应用直接处理。这样就会导致原本该是专注于业务的应用,将会花大量的工作来处理分片后的问题,最重要的是每个应用处理将是完全的重复造轮子。

因此有了数据库中间件,应用只需要集中于业务处理。而大量的通用的数据聚合,事务,数据源切换都由中间件来处理,中间件的性能与处理能力将直接决定应用的读写性能,所以一款好的数据库中间件至关重要。


Mycat的主要作用

1、作为分布式数据库中间件使用:

Mycat不仅可以连接mysql还可以连接其他诸如oracle、sql server等数据库,因为Mycat是使用Java编写的,理论上只要Java能连接的数据库,Mycat都可以连接。这就可以使得应用无需直连数据库,而是连接Mycat,此时后端数据库对应用就是透明的。这样就可以对应用屏蔽后端数据库的复杂性,并保持连接方式的统一。

2、实现数据库集群的读写分离和负载均衡

当系统发展到后期,数据量上来后,数据库架构通常会向集群演进。其中Replication集群方案,节点存在主从角色,也就是常说的主从架构。在这种集群下通常由主节点负责写,从节点负责读。而Mycat可以作为中间层实现读写分离,无需每个应用都写一套读写分离逻辑。并且当存在多个从节点时,Mycat还可以将读请求负载均衡到各个从节点上。

3、实现数据库的高可用

当数据库架构是一主一从时,可以利用Mycat实现数据库的高可用。当主节点挂掉后,Mycat可以切换到从节点上进行读写。但不适用于一主多从的情况,因为主节点挂掉后,Mycat只能切换到其中一个从节点上,而不能改变节点的角色。这样就会导致剩余的从节点无法对其进行数据同步。因此,一主多从需采用MMM或MHA等方式来实现高可用。

4、对业务数据库进行垂直切分:

当系统中的写负载上来后,单个主节点开始无法承受写请求的压力,这时就需要增加主节点来分担负载。拥有多个主节点后,通常会将一个库里没有依赖关系的表拆分到不同的库中,或将一些大表拆成小表,以分散负载。这也就是数据库的垂直切分。

存在多个主节点就意味着应用可能需要对多个数据库进行操作,而Mycat可以将多个数据库抽象成一个逻辑库。这样对于应用来说就无需改动代码去操作多个数据源,只需要操作Mycat中的逻辑库即可。

5、对业务数据库进行水平切分:

当数据库进行了垂直切分后,可能依旧会有一些库的写负载比较高,或者数据量达到单表极限。那么就需要考虑进行水平切分,所谓水平切分就是分库分表。垂直切分与水平切分的区别在于:水平切分后每个库里的表结构是一样的,切分的是数据。而垂直切分则是不同的库里表结构是不一样的,切分的是表。

当数据库进行水平切分后,应用在写数据时就需要考虑应该将数据写入到哪一个库中。而Mycat可以通过特定的策略将写请求分发到某个数据库上,这样应用就只需要将写请求发给Mycat即可,无需考虑应该写哪个库。

6、控制数据库连接数量:

系统中存在比较多的应用,而每个应用都有自己的一个连接池,那么当访问量增大就有可能超出数据库的最大连接数量。此时就可以通过Mycat建立一个公共的连接池,所有的应用都统一通过这个连接池来获取数据库的连接。从而控制同时连接数据库的应用数量,起到一个限流的作用,可以保证系统更加的稳定。


Mycat基本元素

逻辑库:

通常对实际应用来说,并不需要知道Mycat的存在,业务开发人员只需要知道数据库的概念,所以数据库中间件可以被看做是一个或多个数据库集群构成的逻辑库,需要注意的是逻辑库不存储数据。所以不管中间件背后是怎么样的数据库架构,对于应用来说都是在操作一个数据库,而这个数据库就是Mycat抽象出来的逻辑库。

逻辑表:

既然有逻辑库,那么就会有逻辑表,分布式数据库中,对应用来说,读写数据的表就是逻辑表。逻辑表,可以是数据切分后,分布在一个或多个分片库中。也可以不做数据切分,不分片,只有一个表构成。同样,逻辑表也不存储数据。

逻辑表分类:

  • 分片表:数据被拆分到多个数据库中的表
  • 非分片表:数据未被拆分过的表
  • 全局表:结构类似于字典并存在于所有分片中的表,目的是解决跨分片数据 join
  • ER 表:按 ER 关系进行分片的表,目的是让子表的记录与所关联的父表记录存放在同一个数据分片上,保证数据 join不会跨库

Mycat安装

环境:

首先到官方下载地址获取下载链接,然后到linux使用如下命令进行下载并解压:

[root@txy-server ~]# cd /usr/local/src
[root@txy-server /usr/local/src]# wget Http://dl.mycat.io/1.6.7.4/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
[root@txy-server /usr/local/src]# tar -zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz -C /usr/local/

解压后,Mycat的目录结构如下:

[root@txy-server /usr/local/mycat]# ll -rh
total 24K
-rwxrwxrwx 1 root root  227 Jan  5 16:41 version.txt
drwxrwxrwx 2 root root 4.0K Jan  5 16:40 logs # 日志文件目录
drwxr-xr-x 2 root root 4.0K Jan  6 20:40 lib  # 库文件目录
drwxrwxrwx 4 root root 4.0K Jan  6 20:40 conf # 配置文件目录
drwxrwxrwx 2 root root 4.0K Oct 22 21:26 catlet
drwxr-xr-x 2 root root 4.0K Jan  6 20:40 bin  # 可执行文件目录
[root@txy-server /usr/local/mycat]#

为Mycat创建一个系统账户,并更改mycat目录的所属用户,因为在实际的环境中是不可能让程序拥有root账户权限的。命令如下:

[root@txy-server /usr/local]# useradd mycat -s /sbin/nologin
[root@txy-server /usr/local]# chown -R mycat:mycat mycat/

配置环境变量:

[root@txy-server ~]# vim /etc/profile
export MYCAT_HOME=/usr/local/mycat
export PATH=$PATH:$MYCAT_HOME/bin
[root@txy-server ~]# source /etc/profile

由于我这里机器内存只有2G,所以需要修改一下Mycat启动参数,将最大内存改为1G,该参数默认是2G。当然,如果你的机器内存足够的话就不需要更改:

[root@txy-server /usr/local]# vim mycat/conf/wrapper.conf
wrapper.java.additional.4=-XX:MaxDirectMemorySize=1G

启动Mycat服务:

[root@txy-server ~]# mycat start

查看日志,输出了successfully表示启动成功:

[root@txy-server ~]# more /usr/local/mycat/logs/wrapper.log |grep successfully
INFO   | JVM 1    | 2020/01/06 21:16:51 | MyCAT Server startup successfully. see logs in logs/mycat.log
[root@txy-server ~]#

Mycat启动后默认会监听8066、9066等端口,如果开启了防火墙,还需要对端口进行放行。开放端口的命令如下:

[root@txy-server ~]# firewall-cmd --zone=public --add-port=${端口号}/tcp --permanent
[root@txy-server ~]# firewall-cmd --reload

到此为止,我们就成功将Mycat服务搭建起来了。


搭建好Mycat之后,要如何进行使用呢?第一步就是要了解其核心配置文件,由于篇幅有限关于配置的内容在下一篇中进行介绍:

  • Mycat 核心配置详解
您可能感兴趣的文档:

--结束END--

本文标题: Mycat的安装配置

本文链接: https://lsjlt.com/news/36910.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mycat的安装配置
    什么是Mycat至于什么是Mycat,可能在不同的角色下有不同的理解。对MySQL架构有过了解的话,都知道MySQL实际上是由Server层和存储引擎层组成的。所以对于DBA来说,Mycat 就是 MySQ...
    99+
    2024-04-02
  • Linux-Mycat-安装配置
    MyCat介绍 面向企业应用开发的“大数据库集群”支持事务、ACID、可以替代Mysql的加强版数据库可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群融合内存缓存技术、Nosql技...
    99+
    2024-04-02
  • MyCat教程三:安装及配置介绍
    一、安装MyCat 1.安装准备环境 1.1 安装JDK   因为MyCat是java开发的,所以需要java虚拟机环境,在Linux节点中安装JDK是必须的。 1.2 放开相关端口   在主从节点上都放开对端口3306...
    99+
    2015-06-08
    MyCat教程三:安装及配置介绍
  • Cento7.4安装mycat和mycat-eye
    前提: 环境要求已安装JDK1.7+版本 已安装mysql客户端(yum install mysql) 操作系统IP:192.168.75.48 安装mycat 下载解压 wget http...
    99+
    2024-04-02
  • Mycat的使用 - 02.配置
    上次介绍Mycat概念时, 说到了分片表, 下面就从配置一个分片表入手简述Mycat的配置. schema.xml是首先遇到的配置文件, 其管理着Mycat的逻辑库, 表, 分片规则, 分片节点和节点主机,...
    99+
    2024-04-02
  • mycat教程(一) —— 安装
    Mycat 是什么?从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了 MySQL 协议的的 Server,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端...
    99+
    2024-04-02
  • MyCat读写分离配置
        读写分离在我们配置数据库集群时是必然会考虑的一个点,因为这可以有效的降低主库的负载,并且在读多余写的情况下,绝大部分的读请求都可以分发到各个不同的从库上。即使从库负载不够,也可以通过增加从库的方式来...
    99+
    2024-04-02
  • Mycat中如何配置schmea.xml
    这篇文章主要为大家展示了“Mycat中如何配置schmea.xml”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mycat中如何配置schmea.xml”这篇文...
    99+
    2024-04-02
  • 【配置】JDK8的安装与配置
    文章目录 JDK8的安装与配置1、选择哪个版本的JDK?2、官网下载2.1 找到导航栏里的Resources下的 Java Downloads2.2 寻找存档版本 Java archive2....
    99+
    2023-09-09
    java 开发语言
  • 怎么安装部署MyCat
    怎么安装部署MyCat?相信大部分人都还没学会怎么安装部署,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧1、准备mycat部署环境系统IP主机名服务Centos 7.5192.168.20....
    99+
    2024-04-02
  • mycat入门部署安装
    mycat是一种比较简单的中间件产品,可以帮助mysql进行分库,同时统一在一个逻辑库。 硬件环境:系统:centos 7.6数据库版本:5.7.19mycat:1.6..6.1 github上下载myca...
    99+
    2024-04-02
  • MyCAT如何安装使用
    这篇文章主要介绍了MyCAT如何安装使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 MyCAT安装 mycat运行依赖于...
    99+
    2024-04-02
  • Docker中怎么安装mycat
    这篇文章主要讲解了“Docker中怎么安装mycat”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker中怎么安装mycat”吧!1.拉取镜像docker pull ...
    99+
    2023-06-27
  • cacti的安装配置
    一.建立一个虚拟主机1.vim /etc/httpd/conf.d/vhost.conf   该文件为新建文件,也可在/etc/httpd/conf/httpd.conf末尾添加,为:&...
    99+
    2024-04-02
  • centos的安装配置
    当你首次安装完CentOs后,还需要做一些事,才能更好的使用该操作系统。关闭selinuxselinux这个软件功能确实很强大,但是他太复杂了,另外还凌驾于root之上,root都不能突破他的限制。所以,一...
    99+
    2024-04-02
  • mycat配置文件的详细介绍
    这篇文章主要为大家分享mycat的配置文件。文中还介绍了mycat常用的几个分片算法的计算过程和使用方法,希望大家通过这篇文章能有所收获。常用配置文件间的关系由上图可以看到 Mycat 的核心配置文件均采用...
    99+
    2024-04-02
  • Mycat 核心配置是怎么样的
    这篇文章给大家介绍Mycat 核心配置是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。常用配置文件间的关系由上图可以看到 Mycat 的核心配置文件均采用xml格式,这几个配置...
    99+
    2024-04-02
  • Mycat的使用 - 01.概念, 及安装
    初识Mycat1. Mycat是什么Mycat是一款数据库中间件, 其用于分库分表, 还实现了读写分离, 故障切换等功能.2. Mycat的工作原理用一个动词来概括就是"拦截", 它拦截...
    99+
    2024-04-02
  • MySql安装配置
    一、准备工作: 1、MySql; 下载地址:https://pan.baidu.com/s/1_jGonvoX8E7JMw1fgA9nZg 提取码:rx9a 二、安装MySql: 1、点击程序运行,选择“自定义”,点击“下一步” 2、选择...
    99+
    2019-04-04
    MySql安装配置
  • mysql5.7.17安装配置
    一、创建msql用户#添加运行mysql的用户,禁止该用户登录系统 [root@openstack-01 ~]# useradd  mysql -s&nbs...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作