写点什么

DDM 的前世今生——浅析分布式数据库中间件

  • 2019-10-22
  • 本文字数:1204 字

    阅读完需:约 4 分钟

DDM的前世今生——浅析分布式数据库中间件

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 已经得到解决,并且中间件的功能在不断丰富,已经成为高并发应用的绝对利器。


本文转载自公众号中间件小哥(ID:huawei_kevin)。


原文链接:


https://mp.weixin.qq.com/s/VWp6kdtupva90sTxi9FX8Q


2019-10-22 23:251767

评论

发布
暂无评论
发现更多内容

手把手教你使用 Timestream 实现物联网时序数据存储和分析!

亚马逊云科技 (Amazon Web Services)

存储

十三部门修订发布《网络安全审查办法》,企业数据安全合规应尽早

行云管家

云计算 互联网 网络安全 数据安全

TDengine助力京东云IoT数据统计改造

TDengine

数据库 tdengine OpenTSDB

Linux之chown命令

入门小站

Linux

SAP HANA Delivery Unit概念简述

汪子熙

数据库 内存数据库 1月月更

有道围棋 AI:智能匹配儿童棋力的良师益友

有道技术团队

网易有道 围棋

Tableau Day2: 可视化入门图形制作

贾献华

1月月更

iOS开发-数据结构与算法学习之排序篇

iOSer

ios 算法 数据结构与算法 ios开发 iOS 知识体系

设计是表达的艺术,不是艺术的表达

Yisen玩设计

专家带你吃透 Flink 架构:一个新版 Connector 的实现

腾讯云大数据

flink 流计算 Oceanus

在Amazon SageMaker中灵活使用多种存储服务

亚马逊云科技 (Amazon Web Services)

存储

kafka的优缺点都有那些

编程江湖

kafka

在线CSS代码压缩美化工具

入门小站

工具

二哥的小破站终于上线了,颜值贼高!

沉默王二

Java 分布式

大数据开发之Hive表数据同步至HBase

@零度

大数据 hive HBase

利用Graviton2和CloudFront为S3对象存储动态生成缩略图

亚马逊云科技 (Amazon Web Services)

存储

教程直播第6期 | OceanBase 如何进行 Benchmark 测试及调优

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

EventBridge 最佳实践场景:流计算 Oceanus 告警消息实时推送

腾讯云大数据

flink 流计算 Oceanus

图形测试分析毫无头绪?HarmonyOS图形栈测试技术帮你解决|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

【工具推荐】Github国内访问速度太慢?一招教你轻松搞定

恒生LIGHT云社区

GitHub

java开发框架Redis之sentinel和集群

@零度

redis JAVA开发

快来一起玩转LiteOS组件:RHas

华为云开发者联盟

C语言 LiteOS 组件 RHas 哈希函数库

有了这个新特性,一扫实例存储数据丢失风险!

亚马逊云科技 (Amazon Web Services)

存储

开源堡垒机可以一直免费使用吗?为什么?

行云管家

开源 网络安全 堡垒机

低代码音视频开发训练营正在火热报名中!

阿里云CloudImagine

阿里云 低代码 低代码平台 媒体处理 视频云

常用开源监控系统分析推荐(必备知识)|附优质监控书籍资源

云智慧AIOps社区

安全 监控宝 监控工具 开源软件 运维管理

阿里副总裁浅雪对话VMware全球副总裁原欣:阿里云携手VMware,助力企业数字化转型

大咖说

云计算 阿里云 数字化转型 阿里巴巴‘

网络安全好学吗?手把手教你学利用漏洞渗透 网络安全工程师学习资料汇总

学神来啦

优化服务器存储架构——Amazon EBS io2 Block Express正式推出!

亚马逊云科技 (Amazon Web Services)

存储

前端开发之CSS样式——自定义滚动条

@零度

CSS 前端开发

DDM的前世今生——浅析分布式数据库中间件_文化 & 方法_张译文_InfoQ精选文章