您好、欢迎来到现金彩票网!
当前位置:秒速快三 > 水平分片 >

分布式数据库中间件DDM的实现原理

发布时间:2019-07-30 20:33 来源:未知 编辑:admin

  随着数据量不断增大,传统的架构模式难以解决业务量不断增长所带来的问题,特别是在业务成线性、甚至指数级上升的情况。此时我们不得不通过水平扩展,把数据库放到不同服务器上来解决问题,也就是我们说的数据库中间件。

  作为数据库中间件,分布式数据库中间件DDM将底层数据库存储引擎以集群方式管理起来,用户使用非常方便。应用程序不需要关心具体有多少分片。类似操作单机数据库,用户通过DDM管理控制台进行数据库运维,使用JDBC等驱动服务或SQL客户端连接数据库,进行数据读写。

  分片是解决数据库存储容量限制的直接途径。分片包括垂直分片与水平分片两种方式。

  垂直分片又叫纵向分割,即以逻辑表为单位,把原有数据库切分成多个数据库。切分后不同的表存储在不同的数据库上。

  垂直分片与业务架构设计有密切的联系。比如从业务领域对系统进行架构优化,分成多个子业务系统,各个子业务系统耦合度较低。子业务系统间以接口方式进行数据通信和数据交换。垂直拆分后业务清晰,拆分规则明确,系统之间容易整合与扩展。一般用于数据库上层架构设计。

  水平分片又叫横向分割,即以逻辑表中的数据行记录为单位,把原有逻辑数据库切分成多个物理数据库分片,表数据记录分布存储在各个分片上。

  水平分片主要用业务架构无法继续细分,而数据库中单张表数据量太大,查询性能下降的场景。通过水平分片,即解决单库容量问题,同时提高并发查询性能。

  DDM实现了自动水平分片,应用无需关心某个数据该存储在哪一块分片上。对逻辑表水平分片需要依据一定的分片规则,例如一个订单跟踪系统(见上图),我们选取订单号(OrderId)作为拆分键,分别对“订单流水表”、“订单详情表”以及“物流跟踪表”进行水平拆分,拆分规则为对键值Hash后求模,则分片计算规则如下:

  其中,N表示一共有N个数据分片,H(Key(OrderId))表示该订单经过订单号Hash并求模后存储的分片编号。

  路由分发与水平分片同为DDM的基础功能。在分布式数据库中,路由的作用即将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源。例如:订单支付系统包含了shard0、shard1、shard2三个分片,订单号8的订单数据存储在shard0分片上,则应该将以下语句路由分发到shard0分片上执行。

  如果同时路由到shard0、shard1、shard2三个分片,会造成多余的查询,浪费资源;如果路由到shard1、shard2分片,则得不到正确的返回结果。

  数据库中对计算和缓存资源消耗较多的往往是密集或复杂的SQL查询。当系统资源被查询语句消耗,反过来会影响数据写入操作,进而导致数据库整体性能下降,响应缓慢。因此,当数据库CPU和内存资源占用居高不下,且读写比例较高时,可以为数据库添加只读实例。

  1、将查询非事务性查询SQL路由到只读实例中执行,主实例上执行事务性SQL,在很大程度上缓解主实例上的S锁与X锁的竞争。

  2、对只读实例上的表可配置不提供事务支持的数据库引擎,进而提升查询效率。

  3、增加只读实例,也相当于数据库横向扩展,直接增加负载能力,同时增加数据冗余,确保数据库高可用。

  DDM服务实现了自动读写分离,用户购买了RDS只读实例后,将只读实例信息同步到DDM中即可,无需再做其他配置。同时,DDM支持用户在SQL中自定义读写分离策略,具体用法请参考如何实现读写分离。

  随着业务增长,逻辑库存储空间不足,并发压力较大,此时可对DDM实例逻辑库进行平滑扩容,通过增加RDS实例来提高数据存储能力与并发支持能力。

  平滑扩容是一种水平扩容方式,通过增加RDS实例的数量来提升总体数据存储容量,把分库平滑扩容到新增加的RDS实例上,保证所有的数据都是均衡分布在每个分库上,降单个RDS实例的处理压力。平滑扩容原理如下图所示。

  以上就是对分布式数据库中间件DDM实现原理的浅析,目前华为云DDM推出了免费体验活动,想要了解更多,欢迎前往分布式数据库中间件查看。

  进入云计算时代,传统的数据库在性能和容量等方面已无法满足企业的要求,随着数据量的不断骤增,易于扩展、拆分的数据库解决方案对于企业的云化转型更是显得尤为重要。为使企业应用上云更简单,分布式数据库中间件D...博文来自:middleware2018的博客

  随着数据量不断增大,传统的架构模式难以解决业务量不断增长所带来的问题,特别是在业务成线性、甚至指数级上升的情况。此时我们不得不通过水平扩展,把数据库放到不同服务器上来解决问题,也就是我们说的数据库中间...博文来自:middleware2018的博客

  DDM支持配置RDS读策略,您可以根据数据读取压力负载情况,登录DDM管理控制台(RDS导入管理gt;更多gt;设置RDS读策略)合理配置RDS读策略,提高查询性能,,更多详情请到...博文来自:DDMMAN

  在成功配置DDM实例后,即可连接访问DDM实例以及实例下的逻辑库。华为云分布式数据库中间件(DDM)服务目前管理的关系型数据库,是基于MySQL作为存储引擎,因此DDM服务兼容MySQL大部分语法以及...博文来自:DDMMAN

  本文主要介绍如何在华为云DDM管理控制台导入RDS实例。导入华为云RDS即将RDS实例信息,包括实例连接地址,实例管理员账号和密码等,配置到DDM中。RDS实例被导入后,DDM才能监控到RDS实例状态...博文来自:DDMMAN

  中间件Mycat-数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件http...博文来自:零零喵的博客

  在传统的单机体系中,我们在操作数据库时,只需要直接得到数据库的连接,然后操作数据库即可,可是在现在的数据爆炸时代,只靠单机是无法承载如此大的用户量的,即我们不能纵向扩展,那么我们就只能水平进行扩展,即...博文来自:HappyHeng的博客

  摘要:目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的。所以总结一个关于中间件比较的系列,希望可以对大家有帮助。 分布式数据库中间件对比总结(1)目前数...博文来自:da sheng 的专栏

  目录福利发放产品介绍配置方法福利发放目前华为云分布式数据库中间件DDM有试用体验活动,申请华为云账号后可以单击如下图片一键体验:产品介绍华为云分布式数据库中间件(DistributedDatabase...博文来自:DDMMAN

  华为云DDM(分布式数据库中间件)专注于解决数据库分布式扩展问题,突破单机数据库的容量和性能瓶颈,实现海量数据高并发访问。本文介绍如何购买华为云分布式数据库(DDM)相关操作与注意事项购买前首选要注意...博文来自:DDMMAN

  在上一节 从零开发分布式数据库中间件一、读写分离的数据库中间件 中,我们讲了如何通过ThreadLocal来指定每次访问的数据源,并通过jdbc的连接方式来切换数据源,那么这一节我们使用我们常用的数据...博文来自:HappyHeng的博客

  官网资料MyCat官网:权威指南:下载地址:htt...博文来自:徐刘根的博客

  放便实现缓存的分布式,集群,负载均衡,故障自动转移,并兼容多种缓存存储的.net分布式缓存中间件。...博文来自:fengyeguigui的博客

  最近关注到一款基于MySQL的分布式中间件,GitHub:,貌似功能很强大,有兴趣的盆友可以了解下。...博文来自:Fancy116611的博客

  对于单机系统和集中系统是指一台或多台主计算机组成的中心节点,并数据和业务处理逻辑都集中于这个中心节点上,客户端仅仅负责数据的录入和展示。集中式系统的最大优点就是部署简单,同时不需要考虑分布式系统的协作...博文来自:CWeeYii的专栏

  项目中一直在用着TDDL,但除了接入时简单了解了下他的用法和原理外,也没有过多的深究其背后的实现,毕竟在阿里内部用到的中间件太多,每一个都深入的学习需要的周期太长,再者项目中数据库层也没有用到分布式,...博文来自:DislodgeCocoon的博客

  目录福利发放问题现象定位思路解决方法福利发放目前华为云分布式数据库中间件DDM有试用体验活动,申请华为云账号后可以单击如下图片一键体验:问题现象MySQL驱动(jdbc)通过Loadbalance方式...博文来自:DDMMAN

  本文介绍华为云DDM管理控制台创建逻辑库和逻辑表。前提条件:已经购买华为云DDM实例。已经导入RDS实例。创建逻辑库一个DDM实例下最多能新增100个逻辑库。非拆分模式下,逻辑库只能关联一个RDS实例...博文来自:DDMMAN

  目录福利发放分片介绍如何选择RDS实例数量如何选择单RDS分片数量福利发放目前华为云分布式数据库中间件DDM有试用体验活动,申请华为云账号后可以单击如下图片一键体验:分片介绍华为云分布式数据中间件DD...博文来自:DDMMAN

  目录福利发放推荐jdbc版本推荐jdbc参数福利发放目前华为云分布式数据库中间件DDM有试用体验活动,申请华为云账号后可以单击如下图片一键体验:推荐jdbc版本当前不支持使用5.1.4.46版本jdb...博文来自:DDMMAN

  研究目的:PostgreSql是一种非常复杂的对象-关系型数据管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。pgpool-II是一个位于PostgreSQL服务...博文来自:希望不是无解

  HierarchyViewer可以用来查看View的布局层次,并检测布局渲染的性能瓶颈一.设置环境变量如果是Android4.1以上的设备,需要设置一个环境变量,设置步骤如下:Mac:1.vim~/....博文来自:creasylai19

  在数据库的稳定性、高访问量和海量数据的权衡中,传统的关系型数据库和新兴的NoSQL都难于独立承担整个互联网的数据存储职责,而目前如火如荼的全新产物NewSQL还缺乏成熟的案例。因此,基于关系型数据库的水平扩展方案,依然是当前不可或缺的解决方案。 当当自研的数据库中间层Sharding-JDBC在公司内部已广泛使用,并在开源社区推广且初见成果,获得2016年开源中国评选的受欢迎国产开源软件第17名。目前的Sharding-JDBC已经历从试水到稳定,再到变革的关键点。之前的Sharding-JDBC采用Druid做的SQL解析,而为了进一步提升性能,并作出更加出色的产品,新一代Sharding

  利用智能化的SFP光模块,网络管理单元可以实时监测收发模块的温度、供电电压、激光偏置电流以及发射和接收光功率。这些参量的测量,可以帮助管理单元找出光纤链路中发生故障的位置,简化维护工作,提高系统的可靠...博文来自:易天光通信

  1.什么是中间件传统的架构模式就是应用连接数据库直接对数据进行访问,这种架构特点就是简单方便。但是随着目前数据量不断的增大我们就遇到了问题:单个表数据量太大单个库数据量太大单台数据量服务器压力很大读写...博文来自:weixin_33967071的博客

  TDDL是基于Java语言的分布式数据库系统。大型互联网架构中,数据存储会面临读写容量瓶颈问题,比如在“双十一网购狂欢节”活动中,核心数据存储集群读写日访问量可以达到100亿以上。这种场景下,单机数据...博文来自:来去写两行的博客

  因为业务的发展,数据量也在不断的增长,单一数据库无法满足我们读写的性能需求,而分库分表分散存储压力。水平分割,基于数据记录,通过建立结构相同的几张表分别存储数据。垂直分割,基于列字段,将经常一起使用的...博文来自:布道

  入门宣言:不怕从零开始,只怕从未开始。1、Mycat简介(摘自Mycat权威指南年阿里的Cobar在社区使用过程中发现存在一些比较严重的问题,及其使用限...博文来自:Y-CAT的专栏

  背景目前公司业务高速发展,各种业务数据呈井喷的态势,单表数据量急剧膨胀,随之而来是单表读写性能和吞吐量呈下降趋势而且无法应对业务高速增长产生的数据。因此需要使用分库分表机制保证高性能同时支撑和驱动业务...博文来自:李志涛的专栏

  1本地化版本控制系统 工作原理基本上就是保存并管理文件补丁(patch)。文件补丁是一种特定格式的文本文件,记录着对应文件修订前后的内容变化。所以,根据每次修订后的补丁,rcs可以通过不断打补丁,计算...博文来自:worn_xiao的博客

  [TOC]一、为什么需要锁?多任务环境任务都需要对同一共享资源进行写操作对资源的访问是互斥的二、分布式锁方案比较三、Redis实现分布式锁1.单个JVM下实现代码块加Synchronized锁或者Re...博文来自:至尊宝

  :楼主,我的btc rpcallowip=0.0.0.0/0 这样配置,rpc接口访问的时候提示访问拒绝,是什么原因啊?

http://poisondarts.net/shuipingfenpian/181.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有