社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
中间件,也就是处于中间的软件,通过位置而非功能或特性来定义。中间件根据不同的功能又可以分为不同的种类,比如服务中间件Tomcat,消息中间件MQ等,这里主要讨论数据库中间件。
数据库平台需要解决以下三个问题:
整个数据库解决方案中,各个部分都有与之对应的中间件。
分库分表中间件主要负责与上层应用交互,屏蔽读写分离或者分库分表的底层实现细节,对开发人员透明,像操作单库单表一样去操作数据。分库分表中间件除了基本的分库分表功能,还可以提供读写分离、水平扩容等功能。
典型的分库分表中间件有两种设计方案:
关于数据增量订阅/消费通过一个应用场景来说明。
为了提高查询效率,应对高并发,通常会把热点数据放入缓存中(如从MySQL数据中查询出数据,载入到Redis),如果数据变更该如何通知Redis进行缓存更新?
典型的中间件有阿里Canal(支持MySQL),Erosa(支持Oracle)等。
数据同步可以实现跨(同)机房同步以及异地容灾备份、分流等功能。可以涉及多种数据库,处理之后的数据也可以以多种形式存储。某种程度上,数据增量订阅/消费也可以看做是一种数据同步,典型的数据同步中间件有Otter,JingoBus,DRC等。
相同数据库之间的数据迁移较为简单,如MySQL主备同步,更改相应的配置即可,难点是异构数据库(甚至是不同数据源)之间的数据迁移。典型的中间件有yugong,DataX等。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!