MyCat:取代Cobar数据库中间件】的更多相关文章

什么是MyCAT?简单的说,MyCAT就是: 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务.ACID.可以替代Mysql的加强版数据库 ? 一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群 ? 一个融合内存缓存技术.Nosql技术.HDFS大数据的新型SQL Server ? 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 ? 一个新颖的数据库中间件产品. 目标 低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速…
mycat 的主要配置文件 schema.xml rule.xml server.xml 客户端连接mycat mysql -h192.168.1.1 -P8806 -uroot -pwangxiaohu mycat  相当于mysql的代理,本身不存数据 schema.xml dataNode 默认的数据节点 mycat 读写分离,设置schema.xml和server.xml 主从读写分离配置 主主读写分离配置…
比较了业界流行的MySQL分布式数据库中间件,关于每个产品的介绍,网上的资料比较多,本文只是对几款产品的架构进行比较,从中可以看出中间件发展和演进路线 框架比较 TDDL Amoeba Cobar MyCat 点评 TDDL不同于其它几款产品,并非独立的中间件,只能算作中间层,是以Jar包方式提供给应用调用.属于JDBC Shard的思想,网上也有很多其它类似产品. 另外,网上有关于TDDL的图,如http://www.tuicool.com/articles/nmeuu2 中的图 1-2 TD…
MyCat MyCat用于解耦分布式数据库与java,比如分库分表以后,需要查询某条数据时,需要java根据需要查的数据先计算去哪个库查,然而有了Mycat就不用自己计算怎么存储,怎么查询了.MyCat把物理上分开的数据库,看成逻辑上只有一个库.java只需要针对MyCat编码即可.数据库中间件就是位于java和数据中间位置的代码,中间层是一种艺术手法,在计算机中很多地方都有用到,例如java实现跨平台,采用中间层JVM. MyCat的前身是阿里的cobar. 能做什么? 1.读写分离(前提主从…
此文转自: https://www.jianshu.com/p/9f1347ef75dd 2013年阿里的Cobar在社区使用过程中发现存在一些比较严重的问题,如高并发下的假死,心跳连接的故障,只实现了一半的NIO,和看上去很美的自动连接让我们在使用过程中掉入了一个接一个的陷阱,苦苦挣扎.终于,经过Mycat带头人Leader.us的改良——Mycat诞生了. Mycat 开源后,一些 Cobar 的用户参与了Mycat的开发,最终 Mycat 发展成为一个由众多软件公司的实力派架构师和资深开发…
开源数据库中间件-MyCat产生的背景 如今随着互联网的发展,数据的量级也是成指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系型数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时解决了这一危机.它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升. 但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的.这个时候NoSQL肯定是无法满足的,所以还是需要使用关系型数据库.如何…
MyCat是当下很火的开源分布式数据库中间件,特意花费了一些精力研究其实现方式与内部机制,在此针对某些较为重要的源码进行粗浅的分析,希望与感兴趣的朋友交流探讨. 本源码分析系列主要针对代码实现,配置.操作和相关概念解释不作为重点. MyCat源码分析系列之——配置信息与启动流程 MyCat源码分析系列之——前后端验证 MyCat源码分析系列之——BufferPool与缓存机制 MyCat源码分析系列之——SQL下发 MyCat源码分析系列之——结果合并 备注: 本源码分析基于目前稳定版本MyCa…
当在项目中mysql数据库成为瓶颈的时候,我们一般会使用主从复制,分库分表的方式来提高数据库的响应速度,比如mysql主从复制,在没有数据库中间件的情况下,我们只能由开发工程师在程序中控制,这对于一个在正在线上运行的项目来说,需要改动的代码量蛮大的,也不方便扩展,比如,我想再添加一台从机,下面进行mycat入门 一.部署步骤详解 (1) 用命令行工具或图形化客户端,连接MYSQL,创建DEMO所用三个分片数据库: CREATE database db1; CREATE database db2;…
友情提示:非原文链接可能会影响您的阅读体验,欢迎查看原文.(http://blog.geekcome.com) 原文地址:http://blog.geekcome.com/archives/284 在上一篇中介绍了Cobar和client初次建立连接的过程,Cobar监听端口,client发起连接请求,Cobar发送握手数据包,client发送认证数据包最后依据认证的结果Cobar向client发送认证结果. 在认证成功后Cobar会将该连接的回调处理函数由FrontendAuthenticat…
Cobar启动完毕,监听特定端口.整个认证的流程图: NIOAcceptor类继承自Thread类,该类的对象会以线程的方式执行,进行连接的监听. NIOAcceptor启动的初始化步骤例如以下: 1 .打开一个selector,获取一个ServerSocketChannel对象.对该对象的socket绑定特定的监听端口,并设置该channel为非堵塞模式,然后想selector注冊该channel,绑定感兴趣的事件位OP_ACCEPT. 01 public NIOAcceptor(String…
背景 因为博主所负责测试的项目需要数据库有较大的吞吐量,在最近进行了升级,更新了一个数据库中间件 - - mycat.查询了一些资料,了解到这是阿里的一个开源项目,基于mysql,是针对磁盘的读与写,理论上读写速度上会略小于mysql. 与组长沟通后,决定在功能测试完成后,对升级后的mycat进行性能压测. 环境准备 1.下载Jmeter 可以访问下面的地址进行下载,建议下载zip版本的,因为zip是一个绿色版本,无需安装,解压后即可使用, Jmeter下载地址 2.下载mysql数据库的驱动包…
Cobar-Server的源代码地址:GitHub 欢迎Fork. 官方文档描写叙述Cobar的网络通信模块见下图. Cobar使用了Java的NIO进行处理读写.NIO是Java中的IO复用.而不须要对每一个连接都建立一个处理线程. 具体请看 非堵塞I/O–Java NIO教程 Cobar的初始化流程图例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2Vla2NvbWU=/font/5a6L5L2T/fontsize/400/fill/I…
前言 华为云分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离.弹性扩容等能力,应对海量数据的高并发访问场景,有效提升数据库读写性能. 图1:DDM产品介绍 DDM前世之:MyCAT MyCAT的使用情况全国范围内粗略统计超过600家以上成功案例,涵盖政府.金融.证券.互联网.物联网.电信.游戏等众多行业.支持1000亿大数据,中国非常活跃的开源分布式数据库中间件.MyCAT成功在于背…
Mycat是一个分库分表的基于java开发的数据库中间件,使用过程中需要有一个监控系统,mycat-web应运而生.mycat-web是一个使用SpringMVC + Mybatis的监控平台,使用常用的监控系统协议SNMP-简单网络管理协议(Simple Network Management Protocol),和RRD来进行监控界面的展示.相信用过catci的IT运维监控人员对于RRD再熟悉不过. RRDtool是指Round Robin Database 工具(环状数据库).Round r…
为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代.如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷. MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到"云"端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题.2014年MyCat首次在上海的<中华架构师>大会上对外宣讲引发围观,更多的人参与进来,随后越来越多的项目采用了MyCat. MyCat截至到2015年4月,保守估计已经有超过60…
关于 MyCat 的铺垫文章已经写了三篇了: MySQL 只能做小项目?松哥要说几句公道话! 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下! What?Tomcat 竟然也算中间件? 今天终于可以迎接我们的大 Boss 出场了! MyCat 简介 前面文章我们提到,如果数据量比较大的话,我们需要对数据进行分库分表,分完之后,原本存在一个数据库中的数据,现在就存在多个数据库中了,就像下面这样: 那么此时 MyCat 所扮演的角色就是分布式数据库中间件! MyCat 是一个开源的分布…
一般对于业务记录类随时间会不断增加的数据,当数据量增加到一定量(一般认为整型值为主的表达到千万级,字符串为主的表达到五百万)的时候,性能将遇到瓶颈,同时调整表结构也会变得非常困难.为了避免生产遇到这样的问题,在做系统设计时需要预估可能产生的数据量:预估记录主体个数*预估记录主体产生的记录数(e.g.用户订单表预估数据量=预估用户数*单用户产生订单数),预估达到一定量时,就不得不考虑分库分表了,目前国内比较成熟的开源数据库中间件有sharding-jdbc.mycat:而drds是阿里云最近推出的…
在学习数据库中间件前,我们先抛出三个问题 1.数据库数据量不大,但并发读写操作很大,应该怎么办? 此时我们首先考虑使用缓存中间件来减轻读压力,如果不能满足则考虑数据库读写分离,此时就会引入新的问题,这会对我们的应用代码dao产生影响,如何隔离呢 2.应用数据模块很多,总的数据量很大,并发读写超过了单个数据库服务器的能力? 这时候我们可以按业务将数据库拆分为多个数据库,此时就面临如果管理多数据源的问题以及跨库联表查询等问题 3.单表数据量很大,超过了单表的存储上线,例如mysql单表数据量超过10…
MyCat 简介 MyCat 是一个功能强大的分布式数据库中间件,是一个实现了 MySQL 协议的 Server,前端人员可以把它看做是一个数据库代理中间件,用 MySQL 客户端工具和命令行访问:而后端人员可以用 MySQL 原生协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信.可以用作 读写分离.分库分表(分片).容灾备份.多租户应用开发.大数据基础设施,使底层数据架构具备很强的适应性和灵活性. MyCat 的智能优化模块可以使系统的数据访问瓶颈和热点…
随着互联网的发展,数据量的不断增大. 单台实例已经远远无法满足业务的需要. 对数据库分库分表的需求不断的增加随之而来的就是数据库中间件的开发. 一. 单台实例主要面临下面几个问题: 1.  数据量太大单台机器无法承载 2.  数据查询效率太低,单表数据达到一定的量业务性能就无法满足 3.  数据库优化上的瓶颈 4. 数据安全的问题,大量数据放置在一台机器如果数据出问题回复周期会特别长,对业务影响太大. 随之而来的就是需要分库分表 但是分库分表就四个字做起来可真没有这么简单. 二. 分库分表面临的…
随着DT时代的来临,数据对于企业经营决策的价值日益凸显,而企业在进行互联网+转型的过程中,如何让数据架构平滑迁移到大数据平台,对于传统业务的转型升级至关重要.企业IT部门该如何进行PB级别大数据平台的迁移规划呢,请看云智慧运维总监张克琛带来的经验分享. 提到PB级别的大数据解决方案市面上有很多,比较火的有Hadoop.Spark.Kafka等等,如果是一个新上线的系统,相信大家都能找到适合自己的方案.但“大数据”在09年才逐渐成为互联网信息技术的流行词汇,一个较老的系统如何平滑迁移到PB级数据架…
目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的.所以总结一个关于中间件比较的系列,希望可以对大家有帮助. 1. 什么是中间件 传统的架构模式就是 应用连接数据库直接对数据进行访问,这种架构特点就是简单方便. 但是随着目前数据量不断的增大我们就遇到了问题: 单个表数据量太大 单个库数据量太大 单台数据量服务器压力很大 读写速度遇到瓶颈 当面临以上问题时,我们会想到的第一种解决方式就是 向上扩展(scale up) 简单来说就是不断增加硬件性能.这种…
前言 DDM是什么?这是华为云Paas推出的分布式数据库中间件,DDM(Distributed Database Middleware)是一个实现了Mysql协议栈的服务器,前端用户可以把它看做一个数据库代理,用Mysql客户端工具和命令行访问,而DDM后端连接一到多个Mysql Server.因此,DDM本身并不存储数据,数据是在后端连接的Mysql Server上存储的.简单来说,DDM就是Mysql的最佳伴侣,一定程度上让Mysql拥有了跟Oracle PK的能力.这样听起来DDM好像是M…
研读: 1.http://www.mycat.io <Mycat权威指南> 第 2 章 Mycat 前世今生: 浏览: 深度认识 Sharding-JDBC:做最轻量级的数据库中间层 - 编辑部的故事的个人空间 - 开源中国 https://my.oschina.net/editorial-story/blog/888650 小结: 1.MyCAT 在 Cobar 的基础上,完成了彻底的 NIO 通讯,并且合并了两个线程池 2.MyCAT 解决此问题的方式则更加人性化,首先将原先数组模式的固定…
进入云计算时代,传统的数据库在性能和容量等方面已无法满足企业的要求,随着数据量的不断骤增,易于扩展.拆分的数据库解决方案对于企业的云化转型更是显得尤为重要.为使企业应用上云更简单,分布式数据库中间件DDM(Distributed Database Middleware)专注解决企业在上云过程中面临的的数据库瓶颈难题,不但更能轻松满足水平拆分.扩容.读写分离等业务需求,同时也比传统方案更具性价比.接下来让我们一起零距离解密DDM. DDM是什么? DDM专注于解决数据库分布式扩展问题,它突破了传统…
前言 一边有一个经常引诱我让我"娱乐至死"的视频,还有一个不停"鞭策"我让我快点学习的大BOSS.正是有这两种极端的爱才让我常常在自信中明白自己努力的方向.嗯,"人间不值得"! SCHEMA.XML介绍 上一篇写了:数据库中间件DBLE学习(一) 基本介绍和快速搭建,主要介绍快速安装.在安装的过程中,我们配置了schema.xml文件.schema.xml是一个比较重要的文件.该文件提供了逻辑库,逻辑表,分片规则,数据分片,物理数据库等配置.它主…
dble基本架构简介 dble是上海爱可生信息技术股份有限公司基于mysql的高可用扩展性的分布式中间件.江湖人送外号MyCat Plus.开源地址 我们首先来看架构图,外部应用通过NIO/AIO进行连接操作.这里首先我们得介绍一下NIO/AIO是什么概念. BIO 即传统的Blocking I/O,是JDK1.4之前的唯一选择.同步阻塞I/O模式,并发处理能力低. NIO 也叫Non-Blocking I/O,在JDK1.4版本之后发布的新功能,同步非阻塞模式. AIO 也叫Asynchron…
1.这里是在mysql主从复制实现的基础上,利用mycat做读写分离,架构图如下: 2.Demo 2.1 在mysql master上创建数据库创建db1 2.2 在数据库db1创建表student 同时,因为配置好了mysql主从复制,在mysql slave上也有一样数据库和表 2.3 编辑 mycat的配置文件server.xml <!--表示mycat的登录用户名--> <user name="test"> <!--表示mycat的登录密码--&g…
在上一节 从零开发分布式数据库中间件 一.读写分离的数据库中间件 中,我们讲了如何通过ThreadLocal来指定每次访问的数据源,并通过jdbc的连接方式来切换数据源,那么这一节我们使用我们常用的数据库持久层框架MyBatis来实现数据库读写分离. 一.数据源代理: 此类与上一节相似,即可以指定当前线程访问的数据源. package com.happyheng.datasource; /** * 数据源代理设置 * Created by happyheng on 17/1/15. */ pub…
背景说明 华为云分布式数据库中间件(Distributed Database Middleware,简称DDM),专注于解决数据库分布式扩展问题,突破了传统数据库的容量和性能瓶颈,实现海量数据高并发访问. DDM使用华为关系型数据库(RDS)作为存储引擎,具备自动部署.分库分表.弹性伸缩.高可用等全生命周期运维管控能力. 上边几句话是从华为云官网的帮助手册摘录出来的[1],简单介绍了DDM服务.从我这个使用者的角度看来,DDM主要优点有:高性能[2].海量数据支持.数据平滑扩容和业务无感知的读写…