前言

DDM是什么?这是华为云Paas推出的分布式数据库中间件,DDM(Distributed Database Middleware)是一个实现了Mysql协议栈的服务器,前端用户可以把它看做一个数据库代理,用Mysql客户端工具和命令行访问,而DDM后端连接一到多个Mysql Server。因此,DDM本身并不存储数据,数据是在后端连接的Mysql Server上存储的。简单来说,DDM就是Mysql的最佳伴侣,一定程度上让Mysql拥有了跟Oracle PK的能力。这样听起来DDM好像是Mysql的辅助大神,这里有必要对八卦下DDM发展背景,了解下DDM的前世历程。

NoSQL与SQL之争

目前,互联网常有海量数据高并发和存储的场景,对于数据的存储,目前有基于SQL (Structured Query Language)的关系型数据库和NoSQL(Not Only SQL)的非关系型数据库。SQL数据存在特定结构的表中;而NoSQL则更加灵活和可扩展,存储方式可以是JSON文档、哈希表或者其他方式,比如键值存储(redis,ROMA,Memcached)数据库应用在排行更新,会话保存,面向文档的数据库(mongoDB、couchDB)应用在日志记录,面向列的数据库(Cassandra、HBase)在博客中的应用。而且速度极高。

虽然在云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库只能在特定场景下有奇效,只能作为传统数据的补充而不能将其替代。

关系型数据库性能瓶颈

目前绝大多数数据库不具备自动扩展,自动迁移的能力,对于单库单表性能瓶颈明显,当单表超过1000W数据量,性能会出现比较明显的下降。为了解决该难题,常见的做法就是进行分库分表来规避。

垂直分库:可按照业务模块进行划分,把数据分在不同的库中。

水平分库:我们发现某些表的数据量已经超过1000W,QPS显著下降,这里可以对这种表进行进一步水平拆分,做成多个分片表。大多数电商企业会按照日期分片,但又衍生出来一些问题,在固定时段中对某个分片压力很大,其他分片此时处于空闲状态,在电商企业高并发的场景下,会产生大量数据,此时又产生短时间内单库QPS瓶颈的问题。

拆分规则优化:可以根据拆分字段,进行取模的方式来做到数据大致平均分布到多个分片上。可以保证整体系统的QPS得到提升,但又衍生出来一些问题:分片数量不够需要扩容的问题,跨分片事务一致性无法保证的问题。

数据库中间件

为了减少对应用的侵入性,并且要将压力打在中间件上,该中间件负责和上层应用打交道,对应用可表现为一个独立的数据库,而屏蔽底层复杂的系统细节。分布式数据库中间件除了基本的分表分库功能,还可以丰富一下,比如讲读写分离或者水平扩容功能集成在一起,或者比如读写分离本身也可以作为一个独立的中间件。(DDM,Cobar,MyCAT, TDDL等)。

上述提到的分片数量不够的扩容以及分布式事务一致性的问题,在华为云的DDM已经得到解决,并且中间件的功能在不断丰富,已经成为高并发应用的绝对利器。

mysql中ddl和ddm_浅析分布式数据库中间件DDM相关推荐

  1. 浅析分布式数据库中间件DDM

    前言 DDM是什么?这是华为云Paas推出的分布式数据库中间件,DDM(Distributed Database Middleware)是一个实现了Mysql协议栈的服务器,前端用户可以把它看做一个数 ...

  2. mysql中ddl和ddm_对话DDM:分布式数据库中间件全解析

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

  3. mysql中ddl和ddm_分布式数据库DDM Sidecar模式负载均衡

    1 简介 分布式数据库中间件 DDM 分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离 ...

  4. java数据库中间件实现,分布式数据库中间件DDM的实现原理

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

  5. 华为云分布式数据库中间件DDM和开源MyCAT对比

    前言 华为云分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离.弹性扩容等能力,应对海量 ...

  6. 华为云分布式数据库中间件DDM

    分布式数据库中间件(Distributed Database Middleware,简称DDM),专注于解决数据库分布式扩展问题,一个实现了Mysql协议栈的数据库代理服务器,通过代理服务器将底层数据 ...

  7. 入门篇-华为云分布式数据库中间件(DDM)创建逻辑库和逻辑表

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

  8. 分布式数据库中间件Mycat介绍

    从Cobar到Mycat,从闭源到开源,作为一个开源的分布式数据库中间件,Mycat已经被众多开源项目使用.本文简要介绍下Mycat的特性.基本架构以及分库分表和读写分离的配置. 1.Mycat基本介 ...

  9. 【干货】浅谈分布式数据库中间件之分库分表

    分库分表,顾名思义就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上.那么关于分库分表,你了解多少呢?接下来,我们将从什么是数据分片及如何进行分片两方面对DDM ...

最新文章

  1. 【PAT (Advanced Level) Practice】1149 Dangerous Goods Packaging (25 分)
  2. 大型高并发高负载网站的系统架构(转)
  3. spring单元测试报错:Failed to load ApplicationContext 的解决方法
  4. exportfs+NFS客户端问题
  5. MYSQL的binary解决mysql数据大小写敏感问题
  6. JAVA EXCEL API(jxl)简介
  7. net的retrofit--WebApiClient库
  8. python 矩阵合并_numpy 的矩阵合并与分割
  9. 【工具相关】web-HTML/CSS/JS Prettify的使用
  10. ubuntu安装mysql没反应_Ubuntu安装mysql三种安装方式
  11. SentinelResource注解配置上_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0045
  12. 【生活相关】二(2014年新年畅想)
  13. pulse 去马赛克软件_Github高赞:打马赛克=形同虚设,AI看透你一切小心思
  14. Android 日历提供器(一)
  15. 安卓如何隐藏root
  16. 【ARM嵌入式】——多寄存器寻址
  17. 一、14.猜码游戏:每一轮里,程序随机生成两个数字,一个是码数,0到5,一个是猜数,码数到10。用户也输入码数和猜数。若这一轮程序的猜数等于两个码数之和,输出“电脑胜”,若都没猜对或都猜对了,公布双方
  18. 【三环集团logo】用Python 小海龟实现~
  19. 高级计算机网络知识点
  20. 【conda安装】mamba安装 ==conda安装记录

热门文章

  1. ios添加 启动画面_iOS 两种设置启动图方式的 bug 汇总
  2. BMI 指数测试 BMI = 体重 (kg) / 身高² (m)
  3. 哈佛学霸用Python分析相亲网站数据后,写了份完美约会经验贴
  4. 初次进入eclipse的设置
  5. 2014年托福考试共计全国38场考试
  6. vivado下ERROR: [USF-XSim-62] [VRFC 10-3180]
  7. 广东湛江3.6级地震,环境猫30秒内完成速报推送!
  8. 让你聪明10倍的哈佛学习力,颠覆脑力,做情智双高的“少数派”!
  9. leetcode最热100道
  10. 遗传算法优化BP神经网络前后的对比