首页 > 编程知识 正文

redis数据结构的底层实现,分布式消息中间件

时间:2023-05-04 20:16:35 阅读:45108 作者:2313

随着数据量的增长,传统的体系结构模型难以解决业务量增长带来的问题,特别是在业务呈线性或指数上升的情况下。 此时,我们必须通过水平扩展,将数据库放置在不同的服务上来解决问题。 也就是说,它被称为数据库中间件。

作为数据库中间件,分布式数据库中间件DDM在群集上管理底层数据库存储引擎,对用户非常有用。 您的APP应用不需要关心具体有多少瓷砖。 它类似于使用独立数据库,用户通过DDM管理控制台运输数据库,使用驱动程序服务(如JDBC )或SQL客户端连接到数据库,然后读写数据。

DDM服务业务体系结构图

瓷砖是解决数据库存储容量限制的直接手段。 切片有两种方法:垂直切片和水平切片。

垂直切片

垂直切片也称为垂直分割,以逻辑表为单位将原始数据库分割为多个数据库。 分割后的不同表存储在不同的数据库中。

垂直切片与业务体系结构设计密切相关。 例如,从业务领域优化系统,分为多个子业务系统,各子业务系统耦合度较低。 子业务系统之间通过接口方式进行数据通信和数据交换。 垂直分割后业务明确,分割规则明确,便于系统间集成和扩展。 通常用于数据库的高层体系结构设计。

垂直切片图像

水平切片

水平切片也称为水平分割,以逻辑表中的数据行记录为单位,将原始逻辑数据库分割为多个物理数据库片,表数据记录分散存储在各个片上。

虽然水平切片不能主要在业务体系结构中细分,但它是数据库中单个表的数据量太大,导致查询性能下降的场景。 水平切片解决了单个库的容量问题,同时提高了并发查询的性能。

水平切片图像

DDM提供了自动水平切片,APP应用程序不需要在意数据存储在哪个切片上。 逻辑表的水平切片必须遵循一定的切片规则。 例如,选择订单跟踪系统(见上图)、订单编号(OrderId )作为分割键,将“订单流水表”、“订单明细表”及“物流跟踪表”分别水平分割。 分割规则求出键值Hash求出类型后,切片计算规则如下。

h (密钥(有序) )=hash (密钥)有序) %N

其中,n表示一共有n个数据片,h(key(orderid ) )表示该订单经过订单号码Hash求出冲模后保存的片号码。

分片数据存储的映像

路由选择

路由是与水平切片相同的DDM的基本功能。 在分布式数据库中,路由的作用是分析SQL语句并将其转发到相应的分片。 这样可以在运行SQL后获得正确的结果,并节约QPS资源。 例如,如果订单支付系统包含三个shard0、shard1和shard2片,并且订单编号为2017010112345678的订单数据存储在shard0片上,请将以下语句的路由分发到shard0片

选择客户,订单状态,创建日期从订单

where OrderId='2017010112345678 ';

同时路由到shard0、shard1和shard2这三个片会产生额外的查询,浪费资源。如果路由到shard1和shard2分片,将无法获得正确的结果。

使用DDM对单个表进行路由解析的过程如下:

单表路由解析过程

读写分离

数据库中计算和缓存资源消耗最多的往往是高密度或复杂的SQL查询。 当查询语句占用系统资源时,反而会影响数据写入操作,导致数据库整体性能下降,响应速度变慢。 因此,如果数据库的CPU和内存资源利用率较高,且读写比率较高,则可以向数据库添加只读实例。

添加只读实例的角色如下:

1 .通过将查询非事务SQL路由到只读实例并运行它,然后在主实例上运行事务SQL,大大减少了主实例上的s锁定和x锁定之间的冲突。

2 .可以为只读实例上的表配置不提供事务支持的数据库引擎,从而提高查询效率。

3、增加只读实例也相当于向外扩展数据库,在提高直接负载能力的同时,提高数据冗馀度,确保数据库的高可用性。

DDM服务实现了自动读写隔离,用户购买RDS只读实例后,只需将只读实例信息与DDM同步即可,无需进一步配置。 此外,DDM还支持用户在SQL中自定义读写隔离策略。 有关具体用法,请参阅读写分离方法。

读写分离意象

顺利扩展

随着业务的发展,逻辑库的存储容量不足,同时压力也在增加。 在这种情况下,可以通过平稳地扩展DDM实例的逻辑库并添加RDS实例来改进数据存储功能和并发支持功能。

平滑扩展是指增加RDS实例的数量以提高总体数据存储容量,并将分区平滑地扩展到新添加的RDS实例,从而使所有数据均匀地分布在每个分区上,并处理单个RDS实例放大的原理如下图所示。

平稳扩张原理

以上是分布式数据库中间件DDM实现原理浅析。 目前,华为DDM推出了免费体验活动。 如果你想知道更多,欢迎使用分布式数据库中间件。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。