数据库中间件概述

发布于 2022-07-20  7.88k 次阅读


一,数据库中间件的产生背景

    随着互联网的发展,数据的量级也是成指数级增加,从GB到TB再到PB。对数据的各种操作也变得愈发困难,传统的关系性数据库已经无法满足快速查询和插入数据的需求

总得来说最大的原因就是现在的技术已经无法满足需求

面对这种情况产生了两种解决:

  1. 使用一种更高效率的数据库:这就产生了NOSQL数据库,它的效率更高,存储数据量更大
  2. 对原有的关系性数据库进行分布式:产生了像MyCat等数据库中间件,对数据库进行分布式处理

NOSQL虽然效率性能高,但由于由于特性(得到一些东西必将失去一些东西),它无法真正取代传统的关系性数据库

  • 它降低了数据的安全性
  • 减少了对事物的支持
  • 减少了对复杂查询的支持

NOSQL无法取代特定场景,还是需要关系性数据库

MyCat等数据库中间件的产生对数据库就行分库分表,分布式存储来适应高存储高访问的场景

数据库中间件的目标:低成本的将现有的单机数据库和应用拓展成分布式,解决海量数据存储和业务规模迅速增加情况下带来的存储和访问瓶颈问题

二,数据库中间件的种类

数据库中间件
简介
Cober
阿里团队开发,已多年无维护
MyCat
基于Cober二次开发,开发社区维护
OneProxy
不开源的商业中间件
KingShard
Go语言开发
Vitess
Youtube生产在使用,不支持MySQL原生协议
Atlas
360团队基于MysqlProxy改写,高并发不稳定
MaxScale
MaxScala是mariadb研发的中间件
MySQLRoute
MySQL官方Orala公司发布的中间件
① Cobar属于阿里B2B事业群,始于2008年,在阿里服役了3年多,接管3000+个MySQL数据库的schema集群,日处理在线SQL请求50亿次以上。由于Cobar发起人离职,Cobar停止维护

② MyCat是开源社区在阿里Cober基础上进行二次开发,解决了Cober存在的问题,并且加入了许多新的功能

③ OneProxy基于MySQL官方的proxy思想利用C进行开发,OneProxy是一款商业收费的中间件,舍弃了一部分功能,专注于性能和稳定性上

④ Vitess是Youtube生产使用,架构很复杂,不支持MySQL原生协议,使用需要大量改造成本

⑤ KingShard由小团队用GO语言开发,还需要发展个完善

⑥ Atlas是360团队基于MySQL Proxy改写,功能还需完善,高并发不稳定

⑦ MaxScaleMaxScale是mariadb(MySQL原作者维护的一个版本)

三,MyCat的优势

   MyCat是一个彻底开源,面向企业应用数据库中间件,支持事务,可以视为Mysql集群的企业级数据库,用来替代昂贵的Oracle集群,在MyCat中融合内存缓存技术,NoSQL技术,HDFS大数据的新型SQL Server,并结合传统数据库和新型分布式数据仓库的新一代企业级数据库中间件产

优势:

  1. 性能可靠稳定:基于阿里开源Cobar产品而研发,Cober的稳定性,可靠性,优秀的架构和性能以及众多成熟的使用案例
  2. 强大的技术团队:MyCat现由一支强大团队维护
  3. 体系完善:MyCat已经形成了一系列的周边产品

路漫漫其修远兮,吾将上下而求索