专栏首页Java患者为什么要使用MyCat?

为什么要使用MyCat?

什么是Mycat

数据库中间件,所谓中间件,是一类连接软件组件和应用的计算机软件,以便软件各部件之间的通信。

例如 tomcat,web的中间件。而数据库中间件是连接Java应用程序和数据库中间的软件。

为什么要用Mycat

  • Java与数据库的紧耦合
  • 高访问量高并发对数据库的压力
  • 读写请求数据不一致

我们现在普遍的Java应用程序都是直接连接了MySQL软件进行读写操作,也就是我们在Java中的配置文件等定义了mysql的数据源,直接连接到了我们的mysql软件,但是当某些情况下我们可能需要用到了多个数据库,这个时候我们可能就需要配多个数据源去连接我们的多个数据库,这个时候我们进行sql操作的时候就会很麻烦,因为Java与数据库有了一个紧密的耦合度,但是如果我们在Java应用程序与mysql中间使用了mycat,我们只需要访问mycat就可以了,至于数据源等问题,mycat会直接帮我们搞定。

再来说一下高访问量高并发,我们都知道mysql数据库实际上在数据查询上是有一个瓶颈的,当我们的数据太多的时候,已经互联网上有高并发的请求的时候,这个时候对我们mysql的压力是非常大的,当访问量一大,就可能会出现查不出数据,响应的时间太长等,这个时候我们可能需要有多个服务器对数据库进行读写分离,以及对数据库进行集群,这个时候我们的sql语句要进行分类,哪个sql语句要访问哪个数据库,这个时候只要交给mycat就可以了。

最后说一下,使用多个数据库的时候我们就会遇到一个读写数据不一致的问题,这个时候同样mycat可以进行主从复制,保证了数据的一致性。

mycat能干什么

  • 读写分离
  • 数据分片

垂直拆分(分库)、水平拆分(分表)、垂直+水平(分库分表)

首先我们的数据库有多个表

当我们的表足够多的时候,也会造成整个数据库的瓶颈,这个时候查询是非常慢的,这个时候我们可能要对这个数据库进行垂直拆分,也就是分库

我们需要垂直拆分了表4 5 6 放到另外一个库中。

当我们垂直拆分了之后,可能又会出现单个表中的数据达到千万以上,这个时候对表造成了一个瓶颈,这个时候我们对表进行拆分。

我们可以把表的一部分数据拆分到另外的一个数据库。

  • 多数据源的整合

mycat还可以进行多数据源的整合

比如像一些非常重要的数据 比如订单 账单等数据,我们可以让mycat同时写入到多个数据库,保证数据的高可靠性。

也可以让mycat对一些数据进行多个主从的复制,有多个主从数据进行同步,当有一个主机坠机的时候,另外的主机进行切换保障数据安全。

另外我们可以用mycat连接到Nosql,当我们有一些非业务性的数据比如日志等的数据储存到Nosql中。

本文分享自微信公众号 - Java患者(gh_3a16ffdedb6a),作者:Zero

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JAVA面试锦囊(九)

    (2) 对于使用like的查询,查询如果是’%xx’不会使用到索引。而’xx%’会使用到索引。

    用户7386338
  • MySQL索引底层(一)索引底层原理

    在操作系统中,我们执行一个指令去磁盘取数据,那么他会从磁盘取出4KB数据,这个4KB就是一个局部单位,而这4KB数据就是你的指令中取出的数据周围的数据,因为操作...

    用户7386338
  • IT圈最想学的编程语言实战教程

    日前,记者从编码社区HackerRank官网了解到,其公布的《2020年开发者技能报告》(以下简称为“报告”)显示,JavaScript是最知名的编程语言,其次...

    用户7386338
  • PlaNet:一种用于强化学习的深度规划网络

    强化学习旨在研究如何改善人工代理(agent)的决策过程,该技术近年发展的非常迅速。

    用户7623498
  • 漫谈“数据仓库演进史”

    人类的发展,离不开信息的积累。从原始社会的口口相传,到需要将信息记录下来。那么如何记载信息呢?于是有了最早的记载方式——结绳记事。

    用户5548425
  • 看过10万个视频 AI才能识别你的脑残操作 | 2分钟读论文

    来源 / Two Minute Papers 翻译 / 朱婷 校对 / 李宇琛 整理 / 雷锋字幕组 AI 研习社出品系列短视频《 2 分钟论文 》,带大家用...

    AI研习社
  • Install ExpressCache for SSD Caching

    如果你拥有一个安装SSD的电脑,而且已经安装了Windows操作系统。如果这台电脑在出厂OEM 系统分区但都已经被你改变了或者是全新的硬盘,那么这篇文章可能适合...

    gigiwangs
  • 朋友圈(拉姆齐定理)- HDU 6152

    拉姆齐Ramsey定理是一个稍微难于理解的定理,该定理又称拉姆齐二染色定理,是要解决这样的问题:

    ACM算法日常
  • mysql入门 — (1)

    Mister24
  • Shiro官方文档翻译——Apache Shiro的十分钟教程

    Welcome to Apache Shiro’s 10 Minute Tutoral!

    逝兮诚

扫码关注云+社区

领取腾讯云代金券