第一模块
课程名称:MyCAT入门及应用
章节名称:1-1 ~从2-6
讲师姓名:sqlercn
第二模块
内容概述:
课程主要讲解MyCAT的基础知识和MyCAT的基本应用操作
第三模块
学习心得:
mycat是阿里开源出来的一款数据库中间件产品,通过mycat可以轻松的实现数据库的分库分表、读写分离等操作,从而在一定层度上【增强】mysql数据库,去模拟分布式数据库,从而是mysql集群可以支持起更大的数据并发4量,当然mycat也有其局限性,比如在数据源上支持的比较窄。下面附上学习笔记:
1.mycat的前世今生:
2.mycat的作用:分布式数据库系统的中间层
位于应用和数据库之间,可以理解成数据库的代理,应用能够感知到的只有数据库中间件,从而对数据库层面的真实变动会无感,即:将数据库层做成了“无状态的”,一旦做成无状态就可以实现【应用在运行时的水平扩展】。
图解:
数据库中间件的主要功能:
读写分离(技术底座是【主从复制】)
分库分表
读写分离,图解:
注意点:
mycat的“高可用”与zookeeper的“高可用”是不一样的,zookeper的高可用是指:当主节点宕机之后会依据一定的策略从“从节点”中选举出一个新的主节点,并且新的主节点会和剩下的其他从节点进行数据同步,这才是真正意义上的“高可用”!!!【即:MHA机制】
而mycat的高可用,其实有点假,最多算“准高可用”,模式是:事先人为的指定一台从节点为备用主节点(此时,该从节点有也写的功能),运行时如果主节点挂了,则自动转正(mycat将写的sql【路由】到这台从节点上),同时转正后的主节点是不会和其他从节点进行数据同步!!!
mycat的主要功能:
读写分离
数据库垂直拆分
数据库水平拆分(水平分库水平分表)
数据库垂直拆分:将数据库按照索要支撑的功能进行划分。
eg:一个大库拆分成【用户库】、【订单库】、【商品库】
数据库水平拆分:对单个功能库进行水平扩展。
eg:将【用户库】拆分成【用户库1】、【用户库2】、【用户库3】
将数据库的拆分逻辑统一到mycat(数据库中间层)中进行维护,从而避免污染应用层的代码!!!
eg:
mycat的应用场景:
读写分离:支持多种mysql集群方案
分库分表:对分库分布支持的最好的一款开源数据库中间件产品,支持超一千万的表进行分片,支持
一千亿的单表分片
多租户场景:一种软件架构,目的是在多用户的环境下使用共同的数据库系统组件,并且仍能确保数据的隔离性,每一个应用都有一个自己的库,但是应用只能感知到【数据库中间件---mycat】好处,避免每加一个用户就改一次代码的问题!!!
数据统计系统
Hbase的一种替代方案(模拟Hbase去支持【海量数据】)
同样的方式查多种数据库的场景
mycat的优势:
基于阿里的Cobar,起点比较高
社区活跃
完全开源支持自定义开发
支持关系型也支持非关系型
基于java平台,可跨平台
有足够多的实际使用案例
第四模块
学习截图:
共同学习,写下你的评论
评论加载中...
作者其他优质文章