继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第8天 Mycat

杀入互联网江湖
关注TA
已关注
手记 58
粉丝 4
获赞 1

第一模块

课程名称:MyCAT入门及应用

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

讲师姓名:sqlercn


第二模块

内容概述:

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


第三模块

学习心得:

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

1.mycat的前世今生:

http://img.mukewang.com/62f66cce000174fd08390414.jpg


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

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


图解:

http://img.mukewang.com/62f66d2800013e5905970169.jpg


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

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

  • 分库分表


读写分离,图解:

spacer.gifhttp://img1.mukewang.com/62f66cde0001a4b803220365.jpg


注意点:

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

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


mycat的主要功能:

  • 读写分离

  • 数据库垂直拆分

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


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

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


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

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


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

eg:

http://img.mukewang.com/62f66d030001839d07780315.jpg


mycat的应用场景:

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

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

         一千亿的单表分片

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

  • 数据统计系统

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

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


mycat的优势:

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

  • 社区活跃

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

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

  • 基于java平台,可跨平台

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


第四模块

学习截图:

http://img3.mukewang.com/62f66b840001887f07610526.jpg


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP