数据库中间件-Middleware

本文介绍了数据库中间件的概念和作用,详细阐述了分库分表中间件的工作原理,包括直接依赖应用和独立代理服务两种设计。同时,讨论了数据增量处理,如通过订阅数据库binlog实现缓存更新。数据同步和迁移方面,提到了相关中间件及异构数据库迁移的挑战。

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

概念

中间件,也就是处于中间的软件,通过位置而非功能或特性来定义。中间件根据不同的功能又可以分为不同的种类,比如服务中间件Tomcat,消息中间件MQ等,这里主要讨论数据库中间件。

数据库平台需要解决以下三个问题:

  • 可以为各个服务提供高性能、大容量、高可用的数据访问
  • 满足增量数据的订阅与消费,比如缓存数据一致性的需求
  • 异地,异构数据源的同步


image.png | center | 614x389

整个数据库解决方案中,各个部分都有与之对应的中间件。

类别

分库分表

分库分表中间件主要负责与上层应用交互,屏蔽读写分离或者分库分表的底层实现细节,对开发人员透明,像操作单库单表一样去操作数据。分库分表中间件除了基本的分库分表功能,还可以提供读写分离、水平扩容等功能。
典型的分库分表中间件有两种设计方案:

  • 直接为应用提供依赖,如Java中引入Jar文件,使用特定代理数据源,内部管理多个普通数据源(c3p0、druid、dbcp等),每个数据源各自与不同的库建立连接。典型代表有网易的DDB和阿里的TDDL等。
  • 单独部署代理服务,应用层通过标准JDBC访问代理,代理服务根据数据库(如MySQL)的标准通信协议解析请求,再转发到集群中的各个分库分表。典型代表有阿里Cobar,Mycat(基于Cobar)等。

数据增量

关于数据增量订阅/消费通过一个应用场景来说明。

为了提高查询效率,应对高并发,通常会把热点数据放入缓存中(如从MySQL数据中查询出数据,载入到Redis),如

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值