一、MyCAT概述
MyCAT是相同慢由阿里Cobar演变而来之用来支持数据库读写分离、分片的分布式中间件。MyCAT可不光支持Oracle、MSSQL、MYSQL、PG、DB2事关项目数据库,同时为支撑MongoDB等非关系型数据库。基础架构如下:

(二)第一次等就业01

统计 1

田静于小呆了几天,田东明就几乎天在四处搜寻熟人,要为女安排工作为不是起好之转业。田静学的科班是电气自动化,这个正式于聊县城实在是坏就业。

1、MyCAT原理

田东明一个合乎乡长在县及为远非小人脉关系可以就此。好不容易县农机站有只事业编可是使试用一年考核合格才会转化。不管怎么说总比在家赋闲强。

MyCAT主要是通过对SQL的阻止,然后通过一定规则之分片解析、路由于分析、读写分离分析、缓存分析等,然后用SQL发给后端真实的数据块,并拿返回的结果召开适度处理回来给客户端。

遂一周后田静开始上班了。县农业机械管理站是县政府直属副科级事业单位。分综合股、农机管理股、农机技术推广股、农机监理站。田静去的单位是农机技术推广股。

统计 2

这个机构重大承担上级下达的农机技术推广项目,开展新技巧、新机具引进、示范、推广工作;落实农机购置补贴政策;组织对农机及作业工艺进行革新、示范;负责技术咨询、信息交流等工作。

  

指乡镇、村农机化技术推广服务工作。因为田东明就是分管农业、林业、牧业、水利、电力、科技、科协、统计、扶贫、财政、招商引资和项目工作的符乡长。

2、MyCAT功能
(1)数据库分片(Sharding)

他与县农机站王副站长是党校同学,凭着平时之劳作往来和校友关系好不容易帮田东明一个老人家要。田静自然是免亮堂这些内情的。第一龙上班,田静收拾打扮一番尽量把团结打扮的成熟点,可是还是出了些差错。

透过某种条件,将同样数据库中之多少分散的存储到差不多独数据库中,已高达疏散单台数据库设备负载的功能,这便是数据库分片。
a.水平拆分
平张表的差记录,根据表的某字段的某种规则拆分到多只数据库(主机)上,这既是水平拆分。
单库业务表可能会见过分庞大,存在单库读写及仓储瓶颈,这种情形好经水平拆分解决,水平拆分基本架构如下:

进农机站大门时,看门的老人家拦住了它们。小姑娘你寻找哪个?这个点而应有于该校才对啊!田静说,大爷自己来这上班,老大爷戴上花镜说,你骗谁你,你基本上很啊!是无是深受导师赶出来呼吁家长也,大爷一样口标准卫宁话字正腔圆铿锵有力。

统计 3

田静好无语啊!今天专门通过了平等码粉色外套里凡是白衬衣,西裤配黑色皮鞋怎么会像学生吧。

时因此水平拆分规则:
*ID
*日期
*一定字段取模

门口就生热闹起来,好多电动的老干部专程是女干部将田静围成半圈东拉西扯的讯问问题,田静无奈的说,大爷您给办公王旭王主任由只电话就说生个受田静的大学生来报道。

 优点:

父辈看这架势也不是单从,门口都交通拥堵了。大爷速速拿起内线电话起给王主任,不亮大伯又碎碎念说了何,一会王主任黑着脸出现于大门口,他猜忌的量了瞬间田静说好年轻啊!比照片上看正在还小。

*拆分规则抽象好,join操作基本好数据库内成功
*勿存单库大数量,高并发的性质瓶颈
*应用端改造掉
*增强了网稳定以及负载能力

外于在卫宁官腔对传达的镇李头说:“老李头,你是干啥呢么,宅是初来的大学生,启开启开,让人口上!其他人散了解除了上班!有吗好看的也!”。

缺点:
*拆分规则难以抽象
*分片事务一致性难以解决
*数多次扩展难度及维护量极大
*跨库join性能于差

哭笑不得至极的田静总算找到救星了,就差拽着王主任的袖管进了办公楼。进了办公楼,王主任的神气比较川剧变脸还快,一体面长辈慈祥样,笑着拍拍田静的头颅说“你父还吓吧?”田静总以为怪怪的说:“还吓,谢谢王叔叔。”

b.垂直拆分
今非昔比之表切分至不同的数据库(主机)上,这虽是垂直拆分。
诚如随作业表进行归类,划分为不同之工作、模块库,耦合度越没有,越爱做垂直拆分,垂直拆分基本架构如下:

王旭突然有扳直了脸对田静说:“小田及自己去王站长那里报道。”原来楼梯及下来一个三十大多寒暑的爱人,浓妆艳抹高与鞋踩的当当响拿眼睛斜撇在王旭与田静嗲声嗲气的说:“哎吆,我之王大主任你飞啊去了?我满楼底物色你,这是谁家的大姑娘啊!长之真水灵。”

统计 4

乘机声音,那抹在鲜红指甲的星星点点独保养的相当好之白皙小手搂住了王旭的膀子,顺带着以其好似白骨精魔爪的人头勾搭田静的下颌,王旭一把推开这家里之粉红魔爪,把田静拉及身后,一面子庄重的游说:“王春花你有事说事,别拉拉扯扯的,这是新分来的大学生。”

直拆分注意点:
跨库Join,采用共享数据源或分库接口调用,根据资源及多少规模、负载而定

此让王春花的内捂嘴一乐斜着身子抖着左腿说:“哎吆,我的深领导,李站长要之素材将好了从未?这女这么小即高校毕业了,谁家的娃子啊!”

优点:
*拆分后事情清晰,拆分规则明确
*网内构成或扩大容易
*数据库维护简单

王旭不耐烦的说:“王秘书,我用会吃办公室小孟把资料为您送去,你抢去忙吧!”王春花还不挪双臂叠在胸前一幅不达目的不罢手的态势挡住了王旭的去路,王旭才不吃她当即同样拟拉着田静将挤过去,王春花同顺应死乞白赖的金科玉律就是不受她们过去,就以这儿便放任有人在楼道里高声喊叫:“王春花!”。

缺点:
*片业务表无法Join,只能通过接口方式解决,提高了系复杂度
*深受各国种工作不同的界定在单库性能瓶颈,不容易扩展以及性能提高
*事务处理复杂

c.水平拆分和直拆分共同缺点
*分布式事务处理困难
*夸节点join困难
*扩数据源管理复杂

d.切分总则
*能无切分的玩命不切分
*要要切分,选择适用的切分规则,提前计划好
*数据库切分尽量通过数量冗余或说明分组来下滑跨库join
*业务尽量采取少的多表join

(2)读写分离

 

(3)黑白名单限制

 

3、使用状况 

(1)单纯读写分离,此时部署最为简单,支持读写分离、主从切换
(2)分库分表,对记录超过1000万的发明进行水平拆分,最可怜支撑1000亿单表水平拆分
(3)多租户使用,每个应用一个数据库,但先后只待连续MyCAT,程序不改动,实现多租户化
(4)报表系统,借歇MyCAT分表能力,处理大规模的表格统计
(5)替代Hbase,分析深数目
(6)海量实时数据查询

4、优缺点
优点:
(1)支持多种类型数据库的分片
(2)易扩展
(3)

缺点:

二、MyCAT安装
1、下载
官网地址:http://www.mycat.io/
下载地址:http://dl.mycat.io/1.6-RELEASE/
文档地址:http://www.mycat.io/document/Mycat\_V1.6.0.pdf

三、MyCAT使用

 

季、MyCAT重要概念

 1、逻辑库(schema)

逻辑库是mycat中间件层配置的相应实际一个要么多独事情数据库集群构成。

统计 5

2、逻辑表(table)
a.逻辑表是mycat切分至多只数据库或者不切分对应用程序显示的联的申。
b.分片表是初的大表,经过分片,分布于不同数据库、相同数据库的保存相同表结构,但多少不同之说明。
c.非分片表是勿开切分的申。
d.ER表基于E-R关系分片策略,子表记录和所关联的父表记录存放于同一个数码分片上,即子表依赖让父表,通过表分组保证数据join不见面跨库操作。
e.全局表,业务系统面临生成不甚、数据量不大(十万以下),但又要时提到的说明,mycat采用冗余在逐个节点一个客来形成。

3、分片节点(dataNode)
数据库分片后,一个大表被切分到不同之分片数据库及,每个表分片所在的数据库就是分片节点。

4、分片主机(dataHost)
分片节点所在的服务器,数据切分后,每个分片节点不必然都见面占一宝服务器,同一个分片服务器可能存储多只分片节点,尽量要读写压力大之分片节点均的在不同的节点主机及。

5、统计分片规则(rule)
比如某种业务规则把数量分至某分片节点上的条条框框,就是分片规则。(分片规则不行关键,直接决定继续数据处理复杂度)

6、全局序列号(sequence)
当数据库分片后,原有的主键约束在分布式条件下无法利用,因此用引入外部体制保证数据唯一代表,这种保险全局的数额唯一代表机制就是大局序列号(sequence)。

7、多租户
大多用户之环境共用同的系、程序组件,并且保证各用户中数的隔离性。
a.一个用户一个数据库,隔离级别最高、安全性最好,费用高
b.共享数据库,隔离数据架构,每个用户一个schema
c.共享数据库,共享数据架构,共享database、schema,通过表tenantID区分租户数据

 

五、MyCAT附录
1、OLAP和OLTP对比

2、关系型和非关系型数据库对比

3、