美文网首页程序员
Mycat概述与应用场景

Mycat概述与应用场景

作者: Damo很努力 | 来源:发表于2018-12-02 22:57 被阅读0次

            mycat是一个数据库中间件,也可以理解为是数据库代理。在架构体系中是位于数据库和应用层之间的一个组件,并且对于应用层是透明的,即数据库感受不到mycat的存在,认为是直接连接的mysql数据库,见下图:

MyCAT原理

         MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做适当处理返回给客户端。

         mycat的三大功能:分表、读写分离、主从切换;

实现方式:在mycat的配置文件schem.xml配置writehost 跟readhost, server.xml配置数据库的账户信息,rule.xml用于分库分表的规则。

为什么要用mycat:

           主要配合作用于对于系统业务的扩展。例如为了快速开发一个电商小项目,前期就是一个单工程,应用层直接到数据库。当我们的登录注册用户量上来之后,我们可以开始对数据库进行一个读写分离的配置,将读的压力全部分发到slave承担。这时候就能解决很大一部分的压力。

          当然仅仅只有一个读写分离,还是不行的。我们后续可能要针对系统应用层进行一个横向拓展跟纵向的拆分,拆分为订单中心,会员中心,注册中心... 那么此时我们的数据库也相应的拆分成单独部署的几个独立数据库提供给相应的数据持久化,然后将这些数据源配置在mycat当中,对于应用层面来说是透明的,应用层不用再去理会我到底连接的是哪个数据库,mycat通过自身的配置可以完成这个任务。

          再到后面我们订单表越来越庞大,到达了单表几千万甚至一个亿,这个时候我们考虑用mycat进行单表的一个拆分,拆分的规则有很多种,可以按月拆分,取模拆分。当我们进行访问订单表的时候,mycat会根据我们的分片规则解析sql自动的路由派发到相应的子表上去,从而减轻单表几千万的压力。

相关文章

  • Mycat概述与应用场景

    mycat是一个数据库中间件,也可以理解为是数据库代理。在架构体系中是位于数据库和应用层之间的一个组件,并且对于应...

  • Mycat简介

    1. 什么是mycat? 2. mycat可以应用在什么场景? 3. 什么样的表需要进行分片? 答:超过1000万...

  • Mycat 概述

    NoSQL 根本性的优势在于在云计算时代,简单、易于大规模分布式扩展,并且读写性能非常高 关系型数据库NoSQL ...

  • 06.finally的概述和应用场景

    finally的概述和应用场景

  • MyCat批量插入

    1. 概述 web项目使用 mybatis+mycat+mysql 的结构。mycat作为中间件,mysql 使用...

  • Mycat的高可用方案

    本文参考《Mycat权威指南.pdf》 概述 Mycat 作为一个代理层中间件,Mycat 系统的高可用涉及到 M...

  • Mycat 配置概述

    核心配置文件 1.server.xml 作用: 配置mycat系统性参数 ( 标签) 配置用户以及访问权限 (...

  • Mycat集群部署(高可用)

    概述 MyCat 官方推荐使用 HAProxy 做 MyCat 的高可用负载均衡代理。HAProxy 是一款提供高...

  • 如何使用mycat

    1.概念 概念 Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务 Mycat是一...

  • 云数据库 Redis的应用与实践

    Redis缓存应用场景 对于查询较为频繁的数据,可以缓存至Redis中,以提高读取的性能; 场景概述 缓存应用实施...

网友评论

    本文标题:Mycat概述与应用场景

    本文链接:https://www.haomeiwen.com/subject/hlpscqtx.html