分享

经常看见数据库中间件,究竟是什么?

 知行合一ing 2018-12-20

关于数据库中间件,我谈谈自己的见解,并介绍一下常见的数据库中间件。

中间件是什么

首先看看中间件的定义:和业务无关的的技术类组件。这种解释还是稍微有些抽象,下面我举个例子:

我辞职去卖羊肉串(业务端),联系了很多养殖场(底层),为了羊肉的质量和降低成本,我得一家一家地去考察、谈判、比价,然后选一个羊肉供货商合作。经营了一段时间,这个卖羊肉的涨价了,或者提供的羊肉质量没原来好了,那么我就重新考察、谈判、比价,如此反复,我会浪费大量的时间和经历。

于是我找了个信得过的代理公司(中间件),约定好羊肉的质量规格,谈好价钱,以后我只找代理拿货,具体代理找哪个养殖场合作,挣多少差价,我不管。

所以中间件的作用是:让业务端和底层解耦,屏蔽底层困难的逻辑,提供更简单的服务,让业务端的开发更简单。

数据库中间件

再来看看什么是数据库中间件。

在这里,数据库就是底层,我们写的程序就是业务端,数据库中间件就是(和业务无关)的可以实现数据库一些功能的组件。还是有些抽象,那么看看常见的数据库组件有哪些吧。

  • 分库分表(分布式):当数据量大的时候,单台数据库已经不足以支撑我们的业务量,所以会采用分库分表的策略。现在支持分库分表的组件有很多,例如MyCat、MySQL-Proxy、Atlas(360)、Cobar(阿里)、TDDL(淘宝,新名字DRDS)。

  • 数据库同步:顾名思义,是对数据库进行同步的;Otter(阿里),基于数据库增量日志解析,准实时同步数据,支持两个库都可以写入,写入的数据同步到另外的库。

  • 数据库迁移:这个主要用于不同类型数据库的迁移;yugong(阿里),支持Oracle到Mysql的迁移。

  • 数据增量订阅与消费:这个是对数据库增量日志解析,提供增量数据订阅和消费;canal(阿里)。

听过了这些数据库中间件的介绍,是不是理解起来更深刻了。

比如分库分表的中间件,如果自己实现的话,就需要连接多个数据源(或多个表),执行一次查询,每个数据源都需要调用一次,查询回来的数据还需要自己处理;

如果有了中间件做这些工作,我们的开发会更加的简单。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多