为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第8天 Mycat

标签:
MySQL

第一模块

课程名称:MyCAT入门及应用

章节名称:1-1 ~从2-6

讲师姓名:sqlercn


第二模块

内容概述:

课程主要讲解MyCAT的基础知识和MyCAT的基本应用操作


第三模块

学习心得:

mycat是阿里开源出来的一款数据库中间件产品,通过mycat可以轻松的实现数据库的分库分表、读写分离等操作,从而在一定层度上【增强】mysql数据库,去模拟分布式数据库,从而是mysql集群可以支持起更大的数据并发4量,当然mycat也有其局限性,比如在数据源上支持的比较窄。下面附上学习笔记:

1.mycat的前世今生:

https://img1.sycdn.imooc.com//62f66cce000174fd08390414.jpg


2.mycat的作用:分布式数据库系统的中间层

位于应用和数据库之间,可以理解成数据库的代理,应用能够感知到的只有数据库中间件,从而对数据库层面的真实变动会无感,即:将数据库层做成了“无状态的”,一旦做成无状态就可以实现【应用在运行时的水平扩展】。


图解:

https://img1.sycdn.imooc.com//62f66d2800013e5905970169.jpg


数据库中间件的主要功能:

  • 读写分离(技术底座是【主从复制】)

  • 分库分表


读写分离,图解:

spacer.gifhttps://img1.sycdn.imooc.com//62f66cde0001a4b803220365.jpg


注意点:

mycat的“高可用”与zookeeper的“高可用”是不一样的,zookeper的高可用是指:当主节点宕机之后会依据一定的策略从“从节点”中选举出一个新的主节点,并且新的主节点会和剩下的其他从节点进行数据同步,这才是真正意义上的“高可用”!!!【即:MHA机制】

而mycat的高可用,其实有点假,最多算“准高可用”,模式是:事先人为的指定一台从节点为备用主节点(此时,该从节点有也写的功能),运行时如果主节点挂了,则自动转正(mycat将写的sql【路由】到这台从节点上),同时转正后的主节点是不会和其他从节点进行数据同步!!!


mycat的主要功能:

  • 读写分离

  • 数据库垂直拆分

  • 数据库水平拆分(水平分库水平分表)


数据库垂直拆分:将数据库按照索要支撑的功能进行划分。

eg:一个大库拆分成【用户库】、【订单库】、【商品库】


数据库水平拆分:对单个功能库进行水平扩展。

eg:将【用户库】拆分成【用户库1】、【用户库2】、【用户库3】


将数据库的拆分逻辑统一到mycat(数据库中间层)中进行维护,从而避免污染应用层的代码!!!

eg:

https://img1.sycdn.imooc.com//62f66d030001839d07780315.jpg


mycat的应用场景:

  • 读写分离:支持多种mysql集群方案

  • 分库分表:对分库分布支持的最好的一款开源数据库中间件产品,支持超一千万的表进行分片,支持

         一千亿的单表分片

  • 多租户场景:一种软件架构,目的是在多用户的环境下使用共同的数据库系统组件,并且仍能确保数据的隔离性,每一个应用都有一个自己的库,但是应用只能感知到【数据库中间件---mycat】好处,避免每加一个用户就改一次代码的问题!!!

  • 数据统计系统

  • Hbase的一种替代方案(模拟Hbase去支持【海量数据】)

  • 同样的方式查多种数据库的场景


mycat的优势:

  • 基于阿里的Cobar,起点比较高

  • 社区活跃

  • 完全开源支持自定义开发

  • 支持关系型也支持非关系型

  • 基于java平台,可跨平台

  • 有足够多的实际使用案例


第四模块

学习截图:

https://img1.sycdn.imooc.com//62f66b840001887f07610526.jpg


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消