编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

分布式数据层中间件最全详解(图文全面总结)

wxchong 2024-07-19 06:11:08 开源技术 12 ℃ 0 评论

大家好,我是mikechen。

分布式数据库中间件是非常核心的分布式系统,在大数据量的业务场景有广泛的应用,下面全面详解分布式数据库中间件@mikechen

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

分布式数据库中间件

分布式数据库中间件是一种用于管理和操作分布式数据库的中间件,它位于应用程序与底层数据库之间。


为什么需要数据库中间件

传统的数据库架构模式,是应用与数据库直连,这种架构特点就是简单方便,但是一旦数据量上去,就不能很好应对了。

比如:涉及到使用场景非常多的,数据库垂直拆分,以及读写分离、分库分表等行为,就不容易解决了。

而采用分布式数据库中间件,就允许数据水平和垂直扩展。

并且,将数据存储在多个节点上,以应对数据量的增长和访问负载的增加,这使得系统能够更容易地处理大规模的数据。

而且,通过复制和分片技术,分布式数据库中间件能够提供更好的高可用性。


主流分布式数据库中间件


1.DRDS

阿里云的 DRDS,全称是Distributed Relational Database Service,是一种分布式关系型数据库服务,由案例阿里开发和维护。

DRDS的前身是:淘宝根据自己的业务特点开发的《TDDL》,也就是淘宝分布式数据库,主要解决大规模数据存储和访问的问题。

DRDS 架构基于阿里云自主研发的分布式数据库系统,将数据分布存储在多个节点上,并通过数据分片来管理。

如下图所示:

DRDS 支持水平分片,将数据水平划分到多个节点上存储,以实现数据的水平扩展和负载均衡。

DRDS 支持主从复制和读写分离,可以将读操作和写操作分发到不同的节点上处理,提高系统的并发处理能力和性能。

并且,DRDS 支持节点的自动故障切换和恢复,保证系统的高可用性和稳定性,当某个节点出现故障时,系统能够自动将请求重新路由到其他可用节点上。

2.vitess

Vitess 是一个google的分布式数据库中间件,主要解决 MySQL 在大规模、高负载环境下的可伸缩性、和可用性问题。

Vitess 支持水平分片,将数据分布到多个节点上存储,以实现数据的水平扩展。

并且,Vitess 在 MySQL 协议层上提供了透明性,客户端可以像连接普通的 MySQL 数据库一样连接到 Vitess,无需对应用程序进行修改。

同时,Vitess 也提供了自动分片管理功能,可以动态添加和移除分片,以适应数据量和访问负载的变化。

3.MyCat

Mycat基于MySQL协议开发,在阿里cobar基础上进行二次开发,提供了:数据分片、读写分离、负载均衡、高可用性、分布式事务等功能。

如下图所示:

MyCAT 架构是一个典型的分布式数据库中间件架构,通过数据分片、读写分离、和负载均衡等技术实现了数据存储和查询的水平扩展。

MyCAT 支持水平分片,将数据水平划分到多个数据节点上进行存储。

并且,MyCAT 支持按照分片键对数据进行分片,可以根据分片键的取值范围将数据路由到相应的数据节点上。

4.ShardingSphere

ShardingSphere 是一套开源的分布式数据库中间件,提供了数据分片、读写分离、分布式事务等功能。

它支持多种关系型数据库,如:MySQL、PostgreSQL、SQL Server等,适用于大规模数据存储和分析场景。

支持水平分片、和垂直分片,将数据分散存储在多个节点上,提高系统的扩展性和性能。

支持主从复制、和读写分离,将读写请求分发到不同的节点,提高系统的并发处理能力。

提供了多种编程语言的客户端驱动,包括:Java、Python、Go等,方便开发人员在不同平台上使用。

以上

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表