【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. Mysql sqlyog 错误1045

    首先打开运行窗口输入cmd进入DOS界面或者打开MySQL Workbench Step1: cd C:\Program Files\MySQL\MySQL Server 5.6\bin Step2: ...

  2. lombok的@Accessors注解

    @AllArgsConstructor @Data @NoArgsConstructor @Accessors(chain = true) @EqualsAndHashCode public clas ...

  3. Google大数据三大论文

    简介:https://blog.csdn.net/w1573007/article/details/52966742 论文中英文版下载http://pan.baidu.com/s/1slUy4sl   ...

  4. linux服务器搭建lnmp php 微擎环境备用

    以前的时候装个php环境各种的配置麻烦啊,于是乎我就像搜搜一键安装php环境,果然 lamp 和phpstudy 两个环境软件都支持,最后发现lamp 还合胃口就选择了lamp https://lnm ...

  5. Django框架2——模板

    django框架2--模板 直接将HTML硬编码到你的视图里却并不是一个好主意: 对页面设计进行的任何改变都必须对 Python 代码进行相应的修改. 站点设计的修改往往比底层 Python 代码的修 ...

  6. 第五章 模块之 logging、copy、re

    5.12 logging 日志模块 报警等级 CRITICAL = 50 # 最高FATAL = CRITICALERROR = 40WARNING = 30WARN = WARNINGINFO = ...

  7. 基于TCP的编程

    前提:本文基于Linux系统下的学习 服务器端 1 创建通讯端口,返回socket设备的文件描述符 sfdsocket(2)#include <sys/types.h> /* See NO ...

  8. C++中的构造函数与析构函数及组合类的调用

    // 构造函数与析构函数及类的组合 #include "stdafx.h"#include <iostream>using namespace std; //枚举enu ...

  9. js复制内容到粘贴板

    点击右边内容:<span onclick="copyContent(this);" title="点击复制">啊,我被复制了</span> ...

  10. 题解-CTS2019随机立方体

    problem \(\mathtt {loj-3119}\) 题意概要:一个 \(n\times m\times l\) 的立方体,立方体中每个格子上都有一个数,如果某个格子上的数比三维坐标中至少有一 ...