数据库中间件对比

文章介绍了PROXY模式和CLIENT模式的数据库中间件,如TDDL、Zebra、MyCat、Atlas和Vitess等,它们主要用于解决分库分表、读写分离等问题。PROXY模式通常在数据库协议层工作,而CLIENT模式则在Driver或连接池之上。各种中间件各有优缺点,例如MyCat社区活跃,Vitess功能强大但复杂,而某些项目如Atlas已长时间未更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模式说明

PROXY模式

相当于把中间件作为一个独立的服务了,它将接收到的SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。

CLIENT模式

中间件在Driver或者连接池的基础之上,增加了一层封装。我们使用时,以Java开发为例,需要先引入一个jar包。中间件接收持久层产生的sql,同样对sql进行分析等操作,然后才落实到具体的库上。

具体差异对比

模式

名称

厂家

介绍

支持语言

支持协议

开源

优点

缺点

备注

CLIENTTDDL淘宝淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer )框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制。javaJDBC协议GitHub - alibaba/tb_tddl性能较高复杂度相对较高。当前公布的文档较少,只开源动态数据源,分表分库部分还未开源,还需要依赖diamond不推荐
CLIENTzebra美团点评Zebra是一个基于JDBC API协议上开发出的高可用、高性能的数据库访问层解决方案,是美团点评内部使用的数据库访问层中间件。javaJDBC协议https://github.com/Meituan-Dianping/Zebra美团内部使用中间件,社区活跃度高只支持java对java语言强依赖,现阶段不推荐
PROXYmycat开源社区mycat是在cobar基础上研发出来的,对 cobar 的代码进行了彻底的重构,使用 NIO 重构了网络模块,并且优化了 Buffer 内核,增强了聚合,Join 等基本特性,同时兼容绝大多数数据库成为通用的数据库中间件。Mysql协议GitHub - MyCATApache/Mycat-Server
GitHub - MyCATApache/Mycat2: MySQL Proxy using Java NIO based on Sharding SQL,Calcite ,simple and fast
社区活跃度高有些成熟方案,业内也在使用可以考虑
PROXYatlas360Atlas 是由 360 Web平台部基础架构团队开发维护的一个基于 MySQL 协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用 Atlas 运行的 MySQL 务,每天承载的读写请求数达几十亿条。Mysql协议GitHub - Qihoo360/Atlas: A high-performance and stable proxy for MySQL, it is developed by Qihoo's DBA and infrastructure team4年未更新维护不推荐
PROXYVitessYouTubeVitess一直为YouTube所有的数据库提供服务,据其官方描述,它是一款用于部署、扩展和管理大型MySQL实例集群的数据库解决方案。Mysql协议Vitess: Youtube出品的开源分布式MySQL工具集Vitess,自动分片存储MySQL数据表,将单个SQL查询改写为分布式发送到多个MySQL Server上,支持行缓存(比MySQL
GitHub - vitessio/vitess: Vitess is a database clustering system for horizontal scaling of MySQL.

简单介绍之Vitess_lzb_include的博客-优快云博客

vitess介绍 - 拾遗笔记
社区活跃度高复杂度高,文档欠缺
PROXY

ShardingSphere

apacheApache ShardingSphere 是一套开源的分布式数据库增强计算引擎,其通过可插拔架构构建基于数据库之上的生态系统,实现包括数据分片、弹性伸缩、加密脱敏等功能为代表的增强能力Mysql协议Apache ShardingSphere社区活跃度高,apache顶级项目

文档健全、功能全面.

PROXY

kingshard

个人维护kingshard是一个Go开发的mysql中间件,可以实现读写分离、分库分表、连接池等功能mysql协议GitHub - flike/kingshard: A high-performance MySQL proxy两年未更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值