50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:251748

评论

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

零基础自学网络安全/网络渗透攻防路线学习方法【建议收藏】

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

一个成熟的WMS(仓库管理系统)应该具备的那些功能

SAP虾客

功能 WMS系统 成熟的WMS系统

邀请 | Flink Batch 社区开发者会议

Apache Flink

大数据 flink 实时计算

带你读论文丨S&P21 Survivalism: Living-Off-The-Land 经典离地攻击

华为云开发者联盟

人工智能 华为云 论文 企业号 2 月 PK 榜 华为云开发者联盟

CompletableFuture实现异步转同步

FunTester

新鲜出炉!东莞华为云团泊洼数据中心T1项目成功入选2022年ICT优秀案例

极客天地

re:Invent 开发者最喜爱产品票选榜单出炉!快来探索高光产品~

亚马逊云科技 (Amazon Web Services)

杭州银行牵手火山引擎数智平台,要既“好”又“快”地完成数字化升级

字节跳动数据平台

大数据 金融 银行

个人总结18条心法奉上,手把手带你阅读开源项目的源码!

程序员小毕

源码 程序员 面试 程序人生 架构师

sun4.0泰山众筹模式项目系统开发技术讲解放哪(Demo)

I8O28578624

Java Agent 踩坑之 appendToSystemClassLoaderSearch 问题

阿里巴巴中间件

Java 阿里云

选择前端培训怎么学?

小谷哥

Studio One2023永久和谐版水果编曲工具使用教程

茶色酒

Studio One 5 Studio One2023

如何让OpenHarmony编译速度“狂飙”

离北况归

OpenHarmony

前端培训学习前景怎么样?

小谷哥

冗余是什么意思?与双机热备有什么区别?

行云管家

高可用 冗余 双机热备

java开发培训机构怎样选择?

小谷哥

防sql注入原理浅析

追赶者

SQL注入

一文搞清商旅酒店数据治理——酒店数据问题分析及治理方案

元年技术洞察

数据中台 数据 数据治理 企业数字化转型 商旅系统

TAE-MatrixOne云原生事务与分析引擎

MatrixOrigin

数据库事务 云原生数据库 国产数据库 MatrixOrigin MatrixOne

使用插件扩展服务网格

Flomesh

插件 服务治理 服务网格 Pipy

R2M分布式锁原理及实践

京东科技开发者

redis 框架解析 企业号 2 月 PK 榜 r2m 分布式锁原理

必备技巧,PCB设计布局的4项注意(基础篇)

华秋PCB

PCB 布局 PCB设计 布线

火山引擎ByteHouse助力中国地震台网中心,快速构建一站式实时数仓

字节跳动数据平台

大数据 Clickhouse 数据平台

如何使用 Terraform 在亚马逊云科技上创建 ShardingSphere Proxy 高可用集群?

亚马逊云科技 (Amazon Web Services)

数据库 负载均衡 存储

TiCDC 源码阅读(四)TiCDC Scheduler 工作原理解析

PingCAP

数据库 开源 TiDB 源码解读

java线下培训适合小白学习吗

小谷哥

学习web前端培训怎么样?

小谷哥

杭州云堡垒机采购选择哪家好?为什么?

行云管家

云计算 网络安全 数据安全 云堡垒机

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