文档章节

Mycat 之个人感想

w
 walle-Liao
发布于 2016/04/16 13:29
字数 1187
阅读 175
收藏 0

最初接触 Mycat 是因为练数上面新开的课程《Mycat从入门到精通》,而且授课老师是 Leader-us,这个是关键,在这之前报过Learder-us的分布式课程,在分布式课程开始之前,就听到群里的同学讨论说Leader-us的作业非常虐,所以当时已经有些恐惧感,当第一课开始后,看到第一课作业就晕头转向,发现好多东西都没听过,所以当时直接就放弃了这门课程的作业,当然后面的视频也就成压箱底的东西了。现在想起来还很后悔没有跟上节奏把分布式的课程好好学下来,以至于后面看到分布式课程的同学聊那些高大尚的话题我都不敢插话。所以第二次报名Leader-us的课程Mycat的时候,在课程开始之前我就做好了心理准备,不管课程有多虐,我都要坚持到最后。

在学Mycat课程之前,我对Mycat是一无所知的,当时只知道Mycat可以用来将数据库做成类似分布式的这种概念,当时有听过NewSQL的概念,就觉得Mycat好像就是类似的这么一个东东。而且在学Mycat课程之前我连Mysql的主从都没有用过,更不要说后面课程里面的一些牛逼哄哄的高可用LVS / Haproxy + keepalived ,以及数据库压测,Linux主机性能监控这种高级货了,可见这一路学下来是多么的艰辛,也学到了不少东西。记得在做Mycat前面几课的作业的时候经常是周末整天在那捣鼓Mycat,这也是Leader-us作业比较虐的地方,你必须先做作业了解清楚,然后下周的课程才开始讲这个知识点,所以当时为了做作业,基本上权威指南是少不了的,而且必须翻群里的各种聊天记录,问各种小白的问题,但是课程一路到现在,每节课程的作业都是实打实的操作下来,对Mycat的基本的一些功能还算是了解了,这也是比较欣慰的地方。整个课程学习下来积累的10多课的作业文档,还有认识群里的大牛都将为以后Mycat的实际应用铺平道路。

整个课程的学习各种心酸与快乐只有实际参与了才能知道,个人文字功底不好,就不详述了,此处省去800余字。

接下来还是扒一扒Mycat的好与不好,此处纯属个人见解。

关于Mycat做的比较好的几点包括

1、  Mycat对Mysql主从的支持,据说这也是目前使用Mycat的群体使用最多的功能之一

2、  Mycat路由的功能,在后端数据库做了分片或者主从的情况下,Mycat对自动路由功能,可以省去业务程序多数据源切换的问题

3、  Mycat对于数据库连接池的统一管理,因为一个数据库的schema可能会被好几个业务系统同时使用,随着业务系统的增加,mysql的连接很快就会不够,而如果使用Mycat做一层代理的话,所有业务系统都只要连到Mycat上,而这些业务系统是可以共享后台Mysql的连接的

4、  Mycat的分片功能,这也是Mycat的杀手级的功能,但是这个功能又是个双面剑,用的好你会感觉很爽,系统性能有大幅提升,用的不好你会很痛苦,而且有时候可能会很迷茫,特别是你的分片规则没有选好的情况下,后期系统不断扩容,各种数据迁移的问题,可能会让你很无语

 

Mycat还有待改进的地方

1、  对于大表分页查询的问题,尤其是当分页比较大的情况下,Mycat需要从每个分片取出m+n条记录,然后到内存中来排序,得到最终结果,这个是个很耗内存的操作,如果同一时间多有几个这样的查询,很可能就导致Mycat jvm内存溢出了。

2、  在采用了Mycat进行分片的情况下,跨分片join问题,虽然Mycat有E-R分片和全局表的概念可以在比较大多数的情况下解决跨分片join问题,但是系统的复杂性总是会出乎你的意料,可能在某些情况下这个功能又会让你望而却步。


© 著作权归作者所有

w
粉丝 3
博文 15
码字总数 15775
作品 0
深圳
私信 提问
mycat现场开发

mycat社区发布的任务,在南京驻场一个月,之后可以推荐工作,也有一份在深圳的工作,开发mycat2.0。 项目主要的工作内容是在客户现场完善mycat的代码,根据业务需求改进mycat相应的功能,适应...

风--
2017/02/28
1
0
使用mycat实现mysql读写分离

使用mycat实现mysql读写分离 mycat在数据层的作用和nginx在应用层很像,都是代理后面实际的服务。mycat实现了mysql协议,对外看起来就是一个mysql数据库,可以和使用普通mysql一样进行操作 ...

肥肥小浣熊
2018/05/06
0
0
高性能Mysql中间组件Mycat安装配置

高性能Mysql中间组件Mycat安装配置 由于公司项目需要使用到读写分离,但是官方版本的Mysql-proxy读写分离组件太不稳定且有很多BUG,最终决定使用Mycat作为中间组件,其实读写分离只是Mycat中...

幸运券发放
2018/05/02
0
0
MyCAT全局序列号-数据库方式

1.MyCat中的全局序列号介绍 在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此,MyCat 提供了全局 sequence,并且提供了包含本地配置和数据库配置等多种实现方式。...

HilaryHe
2018/07/23
0
0
使用MyCAT实现MySQL的分库分表、读写分离、主从切换

MyCAT及MySQL实例部署情况: MyCAT: IP:10.20.8.57,Port:3310/3311 MySQL : db1-M1,IP:10.20.8.126,Port:3306 db1-M2,IP:10.20.8.126,Port:3307 db2-M1,IP:10.25.80.7,Port:......

橡皮高
2018/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 请务必让我分担他们的痛苦!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :分享石元丈晴的单曲《Why》: 《Why》- 石元丈晴 手机党少年们想听歌,请使劲儿戳(这里) @一代码哥 :当他妈狗屁的程序员,天天...

小小编辑
今天
227
4
php 遇到 No input file specified的解决方法

(一)IIS Noinput file specified 方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS 方法二: 请修改php.ini 找到 ; cgi.force_redirect = 1 去掉前面分号,把后面的1...

chenhongjiang
今天
9
0
MySQL 基础

一、常用命令 在命令行中,配置好环境变量后,通过cmd可以直接进入mysql命令行模式,同时列举几种常用命令 # 进入mysql数据库,密码可以先不写,打完-p后再输入,防止被别人看到mysql -u账...

华山猛男
今天
6
0
简单的博客系统(四)Django请求HTML页面视图信息--基于函数的视图

1. 编写用于查询数据的功能函数 应用目录 下的 views.py 文件通常用于保存响应各种请求的函数或类 from django.shortcuts import renderfrom .models import BlogArticles# Create your ...

ZeroBit
今天
6
0
用脚本将本地照片库批量导入到Day One中

因为目前iCloud 空间已经不足,其中95%都是照片,之前入手了DayOne,且空间没有限制,订阅费一年也不少,再加上DayOne作为一款日记App 也比较有名,功能方面最大的就是地理视图与照片视图,尤...

在山的那边
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部