首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MyCat:第二章:Mycat前世今生

    Mycat前世今生 如果我有一个32核心的服务器,我就可以实现1个亿的数据分片,我有32核心的服务器么?没有,所以我至今无法实现1个亿 的数据分片。——Mycat ‘s Plan 上面这句话是Mycat 1.0快要完成时候的一段感言,而当发展到Mycat 1.3的时候,我们又有了一个新的Plan:  如果我们有10台物理机,我们就可以实现1000亿的数据分片,我们有10台物理机么?没有,所以,Mycat至今没有机会验证 1000亿大数据的支撑能力——Mycat ‘s Plan 2.0 “每一个成功的男人背后都有一个女人”。自然Mycat也逃脱不了这个法则。Mycat背后是阿里曾经开源的知名产品—— Cobar。Cobar的核心功能和优势是MySQL数据库分片,此产品曾经广为流传,据说最早的发起者对Mysql很精通,后来从阿里 跳槽了,阿里随后开源的Cobar,并维持到2013年年初,然后,就没有然后了。 Cobar的思路和实现路径的确不错。基于Java开发的,实现了MySQL公开的二进制传输协议,巧妙地将自己伪装成一个MySQL Server,目前市面上绝大多数MySQL客户端工具和应用都能兼容。比自己实现一个新的数据库协议要明智的多,因为生态环境在 哪里摆着。 Cobar使用起来也非常方便。由于是基于Java语言开发的,下载下来解压,安装JDK,然后配置几个不是很复杂的配置文件,猛 击鼠标,就能启动Cobar。因此这个开源产品赢得了很多Java粉丝以及PHP用户的追捧。当然,笨人(Leader us)也跟着进入,并 且在某个大型云项目中——“苦海无边”的煎着熬,良久。 爱情就像是见鬼。只有撞见了,你才会明白爱情是怎么回事。TA是如此神秘,欲语还羞。情窦初开的你又玩命将TA的优点放大, 使自己成为一只迷途的羔羊。每个用过Cobar的人就像谈过一段一波三折、荡气回肠的爱情,令你肝肠寸断。就像围城:里面的 人已经出不来了,还有更多的人拼命想挤进去。 仅以此文,献给哪些努力在IT界寻求未来的精英和小白们,还有更多被无视的,正准备转行的同仁,同在江湖混,不容易啊,面 试时候就装装糊涂,放人家一马,说不定,以后又是一个Made in China的乔布斯啊。 如果我有一个32核心的服务器,我就可以实现1个亿的数据分片,我有32核心的服务器么?没有,所以我至今无法实现1个亿的数 据分片。——Mycat ‘s Plan 曾经的TA 曾经的TA,长发飘飘,肤若凝脂,国色天香,长袖善舞,所以,一笑倾城。 那已成传说,一如您年少时的坚持:“书中自有黄金屋…” Cobar曾是多少IT骚年心中的那个TA,有关Cobar的这段美好的描述(不能说是广告)俘虏了众多程序猿躁动纯真的心: Cobar是阿里巴巴研发的关系型数据的分布式处理系统,该产品成功替代了原先基于Oracle的数据存储方案,目前已 经接管了3000+个MySQL数据库的schema,平均每天处理近50亿次的SQL执行请求。 50亿有多大?99%的普通人类看到这个数字,已经不能呼吸。当然,我指的是**RMB**。99%的程序猿除了对工资比较敏感,其 实对数字通常并不感冒。上面这个简单的数字描述,已立刻让我们程序型的大脑短路。恨不得立刻百度Cobar,立刻 Download,立刻熬夜研究。做个简单的推算,50亿次请求转换为每个schema每秒的数据访问请求即TPS,于是我们得到一个让 自己不能相信的数字:20TPS,每秒不到20个访问。 Cobar最重要的特性是分库分表。Cobar可以让你把一个MySQL的Table放到10个甚至100个位于不同物理机上的MySQL服务器 上去存储,而在用户看来是一张表(逻辑表)。这样功能很有价值。比如:我们有1亿的订单,则可以划分为10个分片,存储到 2-10个物理机上。每个MySQL服务器的压力减少,而系统的响应时间则不会增加。看上去很完美的功能,而且潜意识里,执行 这句SQL: select count(*) from order 100%的人都会认为:会返回1条数据,但事实上,Cobar会返回N条数据,N=分片个数。 接下来我们继续执行SQL: select count(*) from order order by order_date 你会发现奇怪的乱序现象,而且结果还随机,这是因为,Cobar只是简单的把上述SQL发给了后端N个分片对应的MySQL服务器去执 行,然后把结果集直接输出…. 再继续看看,我们常用的Limit分页的结果…可以么?答案是:**不可以** 这个问题可以在客户端程序里做些工作来解决。所以随后出现了Cobar Client。据我所知,很多Cobar的使用者也都是自行开发 了类似Cobar Client的工具来解决此类问题。从实际应用效果来说,一方面,客户端编程方式解决,困难度很高,Bug率也居高 不下;另一方面,对于DBA和

    02

    快速体验MyCAT

    横空出世的MyCat截至到2015年4月,保守估计已经有超过60个项目在使用,主要应用在电信领域、互联网项目,大部分是交易和管理系统,少量是信息系统。比较大的系统中,数据规模单表单月30亿。本人也初步尝鲜,体验了一把,见以下描述,供大家参考。 一、安装mycat MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用 了 JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。 环境准备 1) JDK 下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 注:必须 JDK7 或更高版本. 2) MySQL 下载 http://dev.mysql.com/downloads/mysql/5.5.html#downloads 注:MyCAT 支持多种数据库接入,如:MySQL、 SQLServer、 Oracle、 MongoDB 等,推荐使用 MySQL 做集群。 3) MyCAT 项目主页 https://github.com/MyCATApache/ 注:MyCAT 相关源码、文档都可以在此地址下进行下载。 windows下可以下载Mycat-server-1.4-RELEASE-yyyymmddxxxx-win.tar 将其解压在某个目录下,建议解压到本地某个盘符根目录下(不建议使用中文目录),如下为解压后的: D:\>cd mycat D:\mycat>dir 驱动器 D 中的卷没有标签。 卷的序列号是 0006-4285 D:\mycat 的目录 2015/09/24  14:55    <DIR>          . 2015/09/24  14:55    <DIR>          ..  2015/09/24  14:55    <DIR>          bin           //bin 程序目录 2015/09/24  14:51    <DIR>          catlet 2015/09/24  16:35    <DIR>          conf         //conf 目录下存放配置文件 2015/09/24  14:55    <DIR>          lib          //lib 目录下主要存放 mycat 依赖的一些 jar 文件 2015/09/25  10:49    <DIR>          logs         //log 目录下主要是日志存放 2015/09/22  23:30               217 version.txt D:\mycat>more version.txt                        //版本信息 BuildTime  2015-09-22 15:30:06 GitVersion   b9af103db1f04afca17edaa05bfe3118ed0b23c2 MavenVersion 1.4-RELEASE GitUrl https://github.com/MyCATApache/Mycat-Server.git MyCatSite http://www.mycat.org.cn QQGroup 106088787 二、配置mycat 1、mycat的配置 文件全部基于xml文件来完成,位于mycat路径下的conf目录 通常包括以下配置文件:全部基于xml文件来完成,位于mycat路径下的conf目录,通常包括以下配置文件: autopartition-long.txt  cacheservice.properties dnindex.properties ehcache.xml index_to_charset.properties log4j.xml                         //日志文件的相关配置 partition-hash-int.txt partition-range-mod.txt router.xml rule.xml schema.xml sequence_conf.properties sequence_db_conf.properties sequence_time_conf.properties server.xml wrapper.conf 2、基本配置 修改server.xml如下 <user name="test">                                //配置连

    01

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券