【1】学习目的

(1)掌握在数据库负载增大时的处理方法

(2)理解mycat的基础概念

(3)掌握mycat基础配置和监控方法

【2】Mycat的前世今生

官网:http://mycat.io/

下载:http://dl.mycat.io/

  在2008年,阿里开发了开源数据库中间件 Amoeba,支持高可用、数据过滤、负载均衡等等

  在2012年,阿里开发了开源数据库中间件 Cobar,开源之后就没有维护了

  在2013年,阿里开发了开源数据库中间件 Mycat,Mycat社区非常火爆且该中间件好用

          在2017年,mycat 已经发展到1.6版本

        在2019-12-23,好像mysql已经进入2.0许久,但一直没有发布正式版

【3】Mycat的主要功能

【3.1】分布式数据库系统中间层

  APP=》数据库中间层=》Mysql等关系型数据库(MongoDB等nosql也可以)

    

  作用:实现读写分离、读负载均衡、数据库连接池管理(统一控制连接数量)、屏蔽后端数据库的一些变更(比如分库分表)

【3.2】实现数据库的读写分离

  

  (1)读写分离,顾名思义,就是把写操作应用在主库,把读操作应用到从库。

    (2)Mycat支持读负载均衡

  (3)Mycat支持后端MySQL高可用(指的是,我们在配置的时候,指定一台从机器也可以完成写的功能,主宕机后,该从机器会接收写请求,但其他从库并不会重新指定新主库到该机器),所以一般情况是需要配合Mysql的高可用策略(比如MHA、MMM、PXC、MGR)等带有自动故障转移的高可用方案来使用。

【3.3】数据库的垂直与水平拆分

利用Mycat配置好,就可以实现切分与访问逻辑,不用在应用程序端再做代码判断访问等。

(1)数据库垂直拆分:

分库:其实就是把不同业务模块分到不同的数据库(可以每个库都在一个实例里,也可以每个库在不同实例里)中去。

  

(2)数据库水平拆分

在单机上:可以看成是分表,把一个大表,拆分成多个表结构相同的表来共同存储表数据

在多机上:这种叫做分库分表,也就是说在单表水平分表的情况下,把每一个分的表都放到一个库(实例上去)上去。

  

【4】Mycat的应用场景

  (1)需要进行读写分离的场景(支持数据库端多种拓扑方案,如主从、主主、MHA、PXC等)

  (2)需要进行分库分表的场景(支持一千亿的单表分片)

  (3)多租户场景(什么是多租户?就是有多个应用程序共用一个数据中心,大家都连Mycat,彼此感受不到对方的存在,互不影响。最常见的就是我们现在的云服务)

  (4)数据统计系统(如报表系统,海量数据实时查询的一种方式)

  (5)HBASE的一种替代方案(HBASE:基于hadoop的列存储)

  (6)需要使用同样的方式查询多种数据库的场景(比如MYSQL、MongoDB)

【5】Mycat的优势

  (1)基于阿里的Cobar系统开发,开源系统(有一个好爸爸就是优势)

  (2)开发社区活跃(证明用的人多,维护的人多,经验和解决方案就多)

  (3)完全开源可以自定义开发,且经历过大规模、大范围的使用,解决方案多

  (4)支持多种关系型及NOSQL数据库

  (5)基于JAVA平台开发,支持多种平台部署,可移植性好

  (6)具有多种行业和项目中应用的成功案例

参考:

  imooc Mycat入门及应用

MyCat(1.1)Mycat基本介绍的更多相关文章

  1. 【Mycat】作为Mycat核心开发者,怎能不来一波Mycat系列文章?

    写在前面 Mycat是基于阿里开源的Cobar产品而研发,Cobar的稳定性.可靠性.优秀的架构和性能以及众多成熟的使用案例使得Mycat一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远. ...

  2. Mysql系列九:使用zookeeper管理远程Mycat配置文件、Mycat监控、Mycat数据迁移(扩容)

    一.使用zookeeper管理远程Mycat配置文件 环境准备: 虚拟机192.168.152.130: zookeeper,具体参考前面文章 搭建dubbo+zookeeper+dubboadmin ...

  3. 应用集成mycat,实现mycat的高可用与mysql的读写分离

    前言 开心一刻 一个女人自朋友圈写道:我家老公昨天和别人家的老婆出去旅游,迄今未归,我则被别人家的老公折腾了一天,好累哦! 圈子下面,评论无数,老公在下面评论到:能不能好好说话,我只不过陪女儿去毕业旅 ...

  4. MyCat教程三:安装及配置介绍

    一.安装MyCat 1.安装准备环境 1.1 安装JDK   因为MyCat是java开发的,所以需要java虚拟机环境,在Linux节点中安装JDK是必须的. 1.2 放开相关端口   在主从节点上 ...

  5. MyCat教程一:MyCat的简单介绍

    MyCat教程二:mysql主从复制实现 MyCat教程三:安装及配置介绍 MyCat教程四:实现读写分离 MyCat教程五:实现分库分表 MyCat教程六:全局序列号-全局主键的自增长 一.MyCa ...

  6. [转帖]MyCat教程【简单介绍】

    MyCat教程[简单介绍] 2019-10-15 10:27:23 波波烤鸭 阅读数 618 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. ...

  7. mycat的基本介绍 看这一篇就够了

    1.前置知识 1.分布式系统 ​ 分布式系统是指其组件分布在网络上,组件之间通过传递消息进行通信和动作协调的系统.它的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务,尤其是高并发或者大数 ...

  8. MYCAT介绍(转)

    从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个M ...

  9. Mycat 介绍

    Mycat 是什么 Mycat是什么?从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了 MySQL协议的的Server,前端用户可以把它看作是一个数据库代理,用 MySQL客户端工具和命 ...

  10. Mycat分布式数据库架构解决方案--Mycat的介绍

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 如果我 ...

随机推荐

  1. PHP去重的简单写法

    PHP去重的简单写法用array_flip实现去重效果 <pre><?php$arr =array("a"=>"a1","b& ...

  2. 使用gomod后,导入模块与编译要注意的事项

    问题:在使用go mod后,执行编译会报错: Cannot load xxx: cannot find module providing package xxx 目录结构如下: J:. │ └─src ...

  3. JWT知识整理

    JSON Web Token:(https://jwt.io/) JSON Web Token(JWT)是一个开放式标准(RFC 7519),它定义了一种紧凑(Compact)且自包含(Self-co ...

  4. centos 6.10 oracle 19c安装

    centos 7以下版本安装oracle 19c 问题较多,centos 以上版本没有任何问题.记录如下. hosts文件,否则图形界面无法启动 127.0.0.1 localhost localho ...

  5. Python-17-反射

    一.什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被 ...

  6. v8 引擎的内存

    一.nodejs查看内容使用情况: process.memoryUsage() 单位为 Btye 转化函数: var format = function(bytes) { return (bytes/ ...

  7. PAT-1030 Travel Plan (30 分) 最短路最小边权 堆优化dijkstra+DFS

    PAT 1030 最短路最小边权 堆优化dijkstra+DFS 1030 Travel Plan (30 分) A traveler's map gives the distances betwee ...

  8. 无法解析的外部符号 ___argc nafxcw.lib(appcore.obj)

    参考 https://blog.csdn.net/wfree/article/details/44171157 MFC的使用: 由"在静态库中使用 MFC" 改成 "在共 ...

  9. SVM支持向量机实例

    波士顿房价回归分析 1.导入波士顿房价数据集 ############################# svm实例--波士顿房价回归分析 ############################## ...

  10. 无重复字符串的最长子串 python

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...