数据库中间件是什么?

中间件

首先得知道中间件是什么。

中间件的定义:将具体业务和底层逻辑解耦的软件。

之前看过一个很生动的例子:我要开一家炸鸡店(业务端),需要鸡肉,有很多养鸡场(底层),我需要一个一个比较价钱,然后找一家性价比高的养鸡场合作(适配不同底层逻辑)。可能一段时间后,我需要重新选一家养鸡场合作,进货方式、交易方式等要重新制定(重新适配)。

这一套事情太复杂了,于是我找到了一个专门整合养鸡场的第三方代理(中间件),跟他谈好价格和质量后(统一接口),以后我就只需要给代理钱,然后拿肉就行。具体这个第三方代理怎么操作,我不用管。

数据库中间件

理解了什么是中间件,什么是数据库中间件就好理解了吧,尝试着按照大白话描述:“数据库中间件是一个软件,他可以让上层的软件对数据库做一些操作,而不用去知道是怎么实现的”。

那么【对数据库做一些操作】会是哪些操作呢?

数据库中间件分类

分布式数据库读写分离、分表分库

这个是我们最常见也是最常用的数据库中间件了,它做的功能就是读写分离、分表分库。

读写分离:

分库分表:

最简单的例子,全国14亿人口的信息,放到数据库里面,输入一个身份证,然后查询这个身份证对应人的姓名。

需求很简单吧,但是开发不简单,因为有14亿数据。

那么可以按照省份进行分表,每个省是一个表,这样每张表的数据会少很多。

如果有了分布式数据库分表分库中间件,前台程序:

select * from user where idcard = ?

中间件会帮你定位到需要查询那个表,比如根据身份证的某几位,定位到哪个省,这个省的表名是啥,最后可能会是:

select * from user_beijing(查北京的人员表) where idcard = ?

比较有名的:Cobar、MyCAT。

其他

一些开发不常用的,我都写到其他里面了(不一一解释了,很多看名字就能猜出来是做什么用的)

数据增量订阅与消费

数据库同步

跨数据库

版权声明:图文来源网络,我们对文中观点保持中立,只以信息传播为目的,文章版权归原作者所有,如有侵权,请联系我们删除。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180724B1KU6R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券