MySQL 中间件汇总比较
360 Atlas
较为活跃,Atlas 是由 360 Web平台部基础架构团队开发维护的一个基于 MySQL 协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用 Atlas 运行的 MySQL 务,每天承载的读写请求数达几十亿条。
主要功能:
1. 读写分离
2. 从库负载均衡
3. IP过滤
4. SQL语句黑白名单
5. 自动分表
Cobar (不维护了)
Cobar是阿里巴巴(B2B)部门开发的一种关系型数据的分布式处理系统,它可以在分布式的环境下看上去像传统数据库一样为您提供海量数据服务。
Cobar的分布式主要是通过将表放入不同的库来实现:
1. 支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分
2. 支持将不同的表放入不同的库
3. 多数情况下,用户会将以上两种方式混合使用。
这里需要强调的是,Cobar 不支持将一张表,例如test表拆分成test_1, test_2, test_3.....放在同一个库中,必须将拆分后的表分别放入不同的库来实现分布式。
在用户配置了 MySQL 心跳的情况下,Cobar 可以自动向后端连接的 MySQL 发送心跳,判断 MySQL 运行状况,一旦运行出现异常,Cobar 可以自动切换到备机工作。
但需要强调的是:
1. Cobar 的主备切换有两种触发方式,一种是用户手动触发,一种是 Cobar 的心跳语句检测到异常后自动触发。那么,当心跳检测到主机异常,切换到备机,如果主机恢复了,需要用户手动切回主机工作,Cobar不会在主机恢复时自动切换回主机,除非备机的心跳也返回异常。
2. Cobar 只检查 MySQL 主备异常,不关心主备之间的数据同步,因此用户需要在使用 Cobar 之前在 MySQL 主备上配置双向同步,详情可以参阅MySQL参考手册。
其次,我们也需要注意Cobar的功能约束:
1. 不支持跨库情况下的join、分页、排序、子查询操作。
2. SELECT 语句执行会被忽略,事务和字符集设置除外。
3. 分库情况下,insert 语句必须包含拆分字段列名。
4. 分库情况下,update 语句不能更新拆分字段的值。
5. 不支持 SAVEPOINT 操作。
6. 暂时只支持 MySQL数据节点。
Mycat
前身 Cobar,开源,较为活跃。
特点:
- 遵守Mysql原生协议,跨语言,跨数据库的通用中间件代理。
- 基于心跳的自动故障切换,支持读写分离,支持 MySQL 一双主多从,以及一主多从
- 有效管理数据源连接,基于数据分库,而不是分表的模式。
- 基于 NIO 实现,有效管理线程,高并发问题。
- 支持数据的多片自动路由与聚合,支持 sum , count , max 等常用的聚合函数。
- 支持2表 join,甚至基于 caltlet 的多表 join。
- 支持通过全局表,ER 关系的分片策略,实现了高效的多表 join 查询。
- 支持多租户方案。
- 支持分布式事务(弱xa)
- 支持全局序列号,解决分布式下的主键生成问题。
- 分片规则丰富,插件化开发,易于扩展。
- 强大的 web,命令行监控。
- 支持前端作为 MySQL 通用代理,后端 JDBC 方式支持 Oracle、DB2、SQL Server 、 mongodb 、巨杉。
- 集群基于 ZooKeeper 管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。
参考有道:MySQL 中间件 Mycat【Blog】.note ,Blog:MySQL 中间件 Mycat
TDDL
已经不再使用,下一代是 DDRS。
淘宝根据自己的业务特点开发了 TDDL (Taobao Distributed Data Layer 外号:头都大了 )框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个基于集中式配置的 jdbc datasource 实现,具有主备,读写分离,动态数据库配置等功能。
TDDL 通过部署在客户端的 jar 包,将用户的 SQL 路由到指定的数据库中。
功能:
- 数据库主备和动态切换
- 带权重的读写分离
- 单线程读重试
- 集中式数据源信息管理和动态变更
- 剥离的稳定 jboss 数据源
- 支持 MySQL 和 Oracle 数据库
- 基于 JDBC 规范,很容易扩展支持实现 JDBC 规范的数据源
- 无 Server,Client,Jar 形式存在,应用直连数据库
- 读写次数,并发度流程控制,动态变更
- 可分析的日志打印,日志流控,动态变更
Heisenberg
整合 Cobar、TDDL,目前并不活跃,由百度员工个人编写。
功能:
- 分库分表与应用脱离,分库表如同使用单库表一样
- 减少 DB 连接数压力
- 热重启配置
- 可水平扩容
- 遵守 MySQL 原生协议
- 无语言限制,MySQLClient,C,Java等都可以使用
Heisenberg服务器通过管理命令可以查看,如连接数,线程池,结点等,并可以调整
Oceanus
用得较少,58 Oceanus 致力于打造一个功能简单、可依赖、易于上手、易于扩展、易于集成的解决方案,甚至是平台化系统。拥抱开源,提供各类插件机制集成其他开源项目,新手可以在几分钟内上手编程,分库分表逻辑不再与业务紧密耦合,扩容有标准模式,减少意外错误的发生 datanode:数据源节点。为一个数据源命名,配置链接属性、报警实现。
主要概念:
- namenode:数据源的簇。为一组数据源命名,指定这组数据源的负载方式、访问模式、权重
- table:映射表。匹配解析sql中的table名称,命中table标签的name属性值后,会执行约定的路由逻辑
- bean:实体。由其他标签引用,实体类必须有无参的构造函数
- tracker:监控埋点。涉及到计算和IO的功能点都有监控点,自定义一个埋点实现类,当功能耗时超出预期时会执行其中的回调函数,便于监控和优化系统
Vitess
较全 高大上,和开发中的 Mycat2.0 类似。谷歌开发的数据库中间件,集群基于 ZooKeeper 管理,通过 RPC 方式进行数据处理,总体分为,server,command line,gui监控 3部分。
OneProxy
商业、收费。
OneProxy 分布式中间件,是平民软件完全自主开发的分布式数据访问层,帮助用户在 MySQL/PostgreSQL 集群上快速搭建支持分库分表的分布式数据库中间件,也是一款具有 SQ L白名单(防 SQL 注入)及 IP 白名单功能的 SQL 防火墙软件。采用与 MySQL Proxy 一致的反向协议输出模式,对应用非常简单和透明易用,让用户畏惧的分库分表(Horizontal Partitioning)工作变得极其简单可控。基于 Libevent 机制实现,单个实例可以实现25万的 SQL 转发能力,用一个 OneProxy 节点可以带动整个 MySQL 集群。
DRDS(推荐)
整合云服务,收费、Cobar、TDDL整合,商用,首选。
阿里分布式关系型数据库服务(Distribute Relational Database Service,简称DRDS)是一种水平拆分、可平滑扩缩容、读写分离的在线分布式数据库服务。前身为淘宝 TDDL,是近千个应用首选组件,已稳定服务了七年以上。
资料:
Mycat在线视频培训 链接:https://pan.baidu.com/s/1K51J3AO4MfLHGrvBgPLQIA 密码:69tj
MySQL 中间件汇总比较相关推荐
- mysql中间件汇总
一.写在前面 mysql作为互联网公司都会用到的数据库,在使用过程中.会用主从复制来提高性能.会用分库分表解决写入问题.以下介绍mysql中间件的一些实现方案 二.Atlas Atlas时 360 公 ...
- docker配置mysql 中间件 ProxySQL
之前我们配置了mysql 一主二从模式,本文将利用mysql中间件ProxySQL 实现读写分离. 首先下载镜像 docker pull proxysql/proxysql 在home目录下创建pro ...
- mysql中间件研究(Atlas,cobar,TDDL)
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas ...
- zabbix历史数据mysql_处理Zabbixl历史数据库解决办法三---使用MySQL中间件为Zabbix数据库扩容...
一 应用场景描述 前面介绍了两种处理Zabbix历史数据的解决办法,但是如果当监控数据继续增长的话是不足以解决问题的. 办法一适合在没有做表分区的情况下,只保留一段时间的数据,比如一个月,然后把老的数 ...
- matlab 写入 MYSQL_阿里开源MySQL中间件Canal快速入门
前言 距离上一篇文章发布又过去了两周,这次先填掉上一篇秒杀系统文章结尾处开的坑,介绍一下数据库中间件Canal的使用. 「Canal用途很广,并且上手非常简单,小伙伴们在平时完成公司的需求时,很有可能 ...
- mysql中间件研究(Atlas,cobar,TDDL,Mycat)
2019独角兽企业重金招聘Python工程师标准>>> mysql中间件研究(Atlas,cobar,TDDL,Mycat) 博客分类: 数据库 mysql-proxy是官方提供的m ...
- mysql中间件研究(Atlas,cobar,TDDL) | 日志 | 果壳网 科技有意思
mysql中间件研究(Atlas,cobar,TDDL) | 日志 | 果壳网 科技有意思 mysql中间件研究(Atlas,cobar,TDDL) | 日志 | 果壳网 科技有意思 posted o ...
- mysql中间件研究( Atlas,cobar,TDDL,mycat,heisenberg,Oceanus,vitess,OneProxy )
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas ...
- e4a数据库mysql中间件_e4a mysql
事件 按钮1.被单击() 变量 查询结果 为 文本型 变量 记录数组 为 文本型() 变量 当前记录 为 文本型 变量 字段数组 为 文本型() 变量 计次1 为 整数型 变量 计次2 为 整数型 编 ...
最新文章
- [bzoj3673/3674可持久化并查集加强版]
- memcache的介绍与应用场景
- Oracle的表空间和数据文件
- c# json.net xml互转
- SAP UI5应用的footer区域绘制原理和入口
- oracle的al32utf8,oracle字符集修改(AL32UTF8-UTF8)
- gamebryo坐标系
- 关于mysql文件的.frm文件的导入
- 解决办法:RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa
- centos7.4下的KVM虚拟机安装使用
- linux下安装fortran90教程,linux 安装fortran 90
- 好玩,AI 让老照片动起来(附 APP 软件地址)
- 抱米花豆丁下载器20100529(单文件绿色版)
- 旺旺怎么去服务器接收文件夹,xp系统下找到阿里旺旺安装路径文件夹的方法
- Windows10 adb安装与环境变量配置
- 谷歌中国四年去本地化接近尾声
- 软件单元黑盒测试,软件测试教学资源单元3 黑盒测试.doc
- 大数据-玩转数据-阿里云获取AccessKey步骤
- 易基因|新品:新型肿瘤标志物检测利器——cfDNA甲基化测序(cfDNA-RBS)
- 腾讯视频qlv转mp4
热门文章
- 赛门铁克发布全新SEP14解决方案 有效抵御并应对端点网络威胁
- 动态骨骼Dynamic Bone优化
- 21分钟教会你分析MaxCompute账单
- 怎样把java降至7_JDK1.8降到1.7技巧
- Cannot resolve javax.media:jai_core:1.1.3(pdf文件转换为图片的依赖出错)
- 大数据新闻案例_大新闻
- web.g.cs_我没有CS学位而从零开始成为Web开发人员的旅程(以及我从中学到的东西......
- 5分钟构建一个自己的无人驾驶车
- 两个复数相加减c语言编程,用c语言 如何编写两个复数的运算啊 都含有虚部 谢谢啊...
- Android MTK 6750 系统语言与输入法