Mysql中间件
Atlas
配置
简介:Atlas是由Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目,每天承载的读写请求数据达几十亿条
主要功能
读写分离
从库负载均衡
IP过滤
自动分表
DBA可平滑上下线DB
自动摘除宕机的DB
优势
将主流程中所有Lua代码用C重写,Lua仅用于管理接口
重写网络模型、线程模型
实现了真正意义上的连接池
优化了锁机制,性能提高数十倍
gaea
配置
简介:小米中国区电商研发部研发的基于mysql协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单、社区、活动等多个业务。Gaea支持分库分表、sql路由、读写分离等基本特性,更多详细功能可以参照下面的功能列表。其中分库分表方案兼容了mycat和kingshard两个项目的路由方式。Gaea在设计、实现阶段参照了mycat、kingshard和vitess,并使用tidb parser作为内置的sql parser
基本概念
SQL兼容性
主要功能
基础功能
多租户
SQL透明转发
慢SQL指纹
错误SQL指纹
注解路由
慢日志
读写分离,从库负载均衡
自定义SQL拦截与过滤
连接池
配置热加载
IP/IP段白名单
全局序列号
分库、分表功能
分库: 支持mycat分库方式
分表: 支持kingshard分表方式
聚合函数: 支持max、min、sum、count、group by、order by等
join: 支持分片表和全局表的join、支持多个分片表但是路由规则相同的join
架构图
多租户的设计与实现
gaea配置热加载设计与实现
gaea proxy后端连接池的设计与实现
prepare的设计与实现
Vitess
简介:Youtube出品的开源分布式MySQL工具集Vitess,自动分片存储MySQL数据表,将单个SQL查询改写为分布式发送到多个MySQL Server上,支持行缓存(比MySQL本身缓存效率高),支持复制容错
优势
支持对Mysql数据库进行分片扩展,无需应用程序做太多更改
从物理机迁移到云
部署和管理mysql实例
中间件层细分概念图
Vitess的组成架构
分片管理
MySQL本身并不提供拆分分片功能,但是您的业务数据量增大到一定程度是您是需要增加集群的。Vitess提供在线拆分功能,只需要很少的时间就完成新集群的切换,无需您在应用程序中添加任何拆分逻辑。
连接池
Vitess避免了MySQL连接的高内存开销。 Vitess服务器轻松地一次处理数千个连接。
工作流
Vitess会跟踪有关集群配置的所有元数据,以便集群拓扑始终是最新的,对不同的客户端保持一致。
性能
Vitess自动重写对数据库性能有损害的查询。它还使用缓存机制来调解查询,并防止重复查询同时到达您的数据库
扩展性
Vitess集Mysql数据库的很多重要特性和NoSQL数据库的可扩展性于一体。其内建拆分分片功能使您能够对您的MySQL数据库集群无限水平扩展,同时无需为应用添加分片逻辑
Cetus
简介:Cetus是由C语言开发的关系型数据库MySQL的中间件,主要提供了一个全面的数据库访问代理功能。Cetus连接方式与MySQL基本兼容,应用程序几乎不用修改即可通过Cetus访问数据库,实现了数据库层的水平扩展和高可用
Cetus 使用手册